Я новичок и создаю приложение для Wndows Phone 7.
Первое, что вы должны знать, это то, что мой код работает очень хорошо, когда я впервые загружаю страницу (от Меню до ConversationPage, с Меню, которое содержит список разговоров).Затем, если я использую жесткую кнопку, чтобы вернуться на страницу меню, и нажимаю на ту же беседу, чтобы снова загрузить ту же ConversationPage, проблема начинает возникать.
По сути, у меня есть текстовое поле с именем MessageBoxMessage и SendButton вapplicationBar.
Что я хочу: когда я нажимаю кнопку SendButton, она просматривает MessageBoxMessage.Text и отправляет это значение в функцию PostToWeb.
Проблема: когда я перезагружаю страницу, пишитечто-то в поле и нажмите SendButton, MessageBoxMessage.Text волшебным образом изменится на «» или «новое сообщение».
Я ввел точку останова в событии MessageBoxMessage_TextChanged и в начале события SendButton_Click, и значение приходитот "blablabla" (последнее время MessageBoxMessage_TextChanged запущено) до "" или "новое сообщение" (когда срабатывает SendButton_Click).
Я не могу понять, почему ... И у меня есть еще одна проблема, каскадная, так что я думаю, этобольшой вопрос для начинающих ... (Кстати, я проверил и событиеопределено только один раз)
Извините за мой английский, я надеюсь, что вы сможете помочь :) Большое спасибо
private void MessageBoxMessage_GotFocus(object sender, RoutedEventArgs e)
{
MessageBoxMessageHasFocus = true;
if (MessageBoxMessage.Text == "new message")
{
MessageBoxMessage.Text = "";
if (hasPictureAttached == true)
{ SendButton.IsEnabled = true; }
else
{ SendButton.IsEnabled = false; }
}
else if (MessageBoxMessage.Text == "")
{
if (hasPictureAttached == true)
{ SendButton.IsEnabled = true; }
else
{ SendButton.IsEnabled = false; }
}
else
{
SendButton.IsEnabled = true;
}
}
private void MessageBoxMessage_LostFocus(object sender, RoutedEventArgs e)
{
MessageBoxMessageHasFocus = false;
if (MessageBoxMessage.Text == "")
{
MessageBoxMessage.Text = "new message";
if (hasPictureAttached == true)
{ SendButton.IsEnabled = true; }
else
{ SendButton.IsEnabled = false; }
}
else if (MessageBoxMessage.Text == "new message")
{
if (hasPictureAttached == true)
{ SendButton.IsEnabled = true; }
else
{ SendButton.IsEnabled = false; }
}
else
{
SendButton.IsEnabled = true;
}
}
int MessageBoxMessageTextChangedCounter = 0;
private void MessageBoxMessage_TextChanged(object sender, TextChangedEventArgs e)
{
if (MessageBoxMessageTextChangedCounter == 0)
{
if ((MessageBoxMessage.Text != "" && MessageBoxMessage.Text != "new message") || hasPictureAttached == true)
{
SendButton.IsEnabled = true;
}
else { SendButton.IsEnabled = false; }
MessageBoxMessageTextChangedCounter = 1;
return;
}
else
{
MessageBoxMessageTextChangedCounter = 0;
}
if (MessageBoxMessage.Text != "" && MessageBoxMessage.Text != "new message")
{
MessageString = MessageBoxMessage.Text;
}
}
private void SendButton_Click(object sender, EventArgs e)
{
if (MessageBoxMessage.Text == "new message" && hasPictureAttached == true)
{ MessageBoxMessage.Text = "";}
SendButton.IsEnabled = false;
if (hasPictureAttached == true)
{
//MessageString = MessageBoxMessage.Text;
GetPictureUrl();
hasPictureAttached = false;
}
else
{
//MessageString = MessageBoxMessage.Text;
POSTmessage();
}
if (MessageBoxMessageHasFocus == true)
{
MessageBoxMessage.Text = "";
MessageBoxMessage.SetValue(TextBox.TextProperty, "");
}
else
{
MessageBoxMessage.Text = "new message";
MessageBoxMessage.SetValue(TextBox.TextProperty, "new message");
}
}
Ниже XAML
<TextBox x:Name="MessageBoxMessage" Margin="-12,0,-12,12" TextWrapping="Wrap" Foreground="Gray" TextChanged="MessageBoxMessage_TextChanged" LostFocus="MessageBoxMessage_LostFocus" GotFocus="MessageBoxMessage_GotFocus">
<TextBox.InputScope>
<InputScope>
<InputScopeName NameValue="Chat" />
</InputScope>
</TextBox.InputScope>
</TextBox>