我是一名初学者,我正在为Wndows Phone 7创建一个应用程序。
首先你必须知道的是,当我第一次加载页面时(从菜单到对话页面,菜单包含对话列表),我的代码工作得很好。然后,如果我使用硬键返回菜单页面,然后单击相同的对话再次加载相同的ConversationPage,则问题开始出现。
基本上,我有一个名为MessageBoxMessage的文本框,以及applicationBar中的SendButton。
我想要的是:当我单击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