我有一个WPF页面,其中包含多个文本框和一个搜索按钮。当按下搜索按钮时,程序需要枚举所有控件以确定是否填充了至少一个文本框。如果全部为空错误,则会显示错误。正在使用mvvm-light模式。
如何枚举MVVM下的所有文本框
答案 0 :(得分:3)
有一种简单的方法可以实现目标。
您可以在此ViewModel中创建ViewModel
并创建属性,这样您就可以将这些属性绑定到XAML上的TextBox,这样,ViewModel上的属性将保持文本框的值,这是一个示例。 / p>
<强> XAML 强>
<TextBox Text="{Binding Name, Mode=TwoWay}"/>
<TextBox Text="{Binding Age, Mode=TwoWay}"/>
“Mode = TwoWay”表示只要bind属性发生变化,textBox就会自动更新。
XAML代码行为。
public MainWindow(){
InitializeComponent();
this.DataContext = new MainWindowViewModel();
}
您需要设置DataContext才能绑定属性。
<强>视图模型强>
public class MainWindowViewModel{
private string _name;
public string Name{
get{
return _name;
}
set{
_name = value;
}
}
private int _age;
public int Age{
get{
return _age;
}
set{
_age = value;
}
}
}
就是这样,每当你需要检查你的TextBox是否为空时,你可以检查View Model上的属性是否为空。
答案 1 :(得分:0)
按照此逻辑枚举控件并告知用户其状态。
AreAllBlank
(?)来枚举每个属性,检查它们是否为空。如果它们都为空白,请返回true
,否则返回false
。MessageBox.Show()
。