我正在做一个Windows Phone 8.1项目。在XAML中,我有两个文本框,一个用于名字,另一个用于最后一个,还有一个按钮。在按钮点击事件中,我想显示一条消息,说“等等等等等等。”如果文本框中的任何一个(或两个)都是空的。
我尝试了很多方法,但是没有能够得到这个。这是我能得到的最好的,但它并没有在某种程度上发挥作用:
private async void Button_Click(object sender, RoutedEventArgs e) { if ((Textbox_first_name.DataContext== null) || (Textbox_last_name.DataContext== null)) { var dialog = new MessageDialog("message 2", "message 1"); await dialog.ShowAsync(); } else { Frame.Navigate(typeof(page3)); } }
使用DataContext,我收到消息。但即使我输入任何内容,它也不会将我带到第3页。它只是显示消息。所以,它似乎没有承认else块。
我试过
if ((Textbox_first_name_extractor.Text== null) || (Textbox_last_name_extractor.Text== null)) //same everything else
信息甚至没有到来。它立刻带我到第三页,即使它是空的。我不知道我做错了什么,或者不知道。请帮忙!
Windows 8.1; VS2013 Updt4;
答案 0 :(得分:0)
你可以尝试:
if(String.IsNullOrWhiteSpace(Textbox_first_name_extractor.Text) ||
String.IsNullOrWhiteSpace(Textbox_last_name_extractor.Text))
作为你的if语句。这将检查null或空/空白填充字符串。
但是,您是否尝试过调试应用程序?如果是这样,你检查了两个文本框的.Text的内容是什么?
或者,如果您正在使用XAML,为什么不使用数据绑定并验证绑定属性?
答案 1 :(得分:0)
您可以通过Text
property访问TextBox的文本,在这种情况下使用String.IsNullOrEmpty
(或String.IsNullOrWhitespace,根据您的需要)验证它:
if (String.IsNullOrEmpty(Textbox_first_name) ||
String.IsNullOrEmpty(Textbox_last_name.Text))
{
var dialog = new MessageDialog("message 2", "message 1");
await dialog.ShowAsync();
}