了解视图模型

时间:2015-09-08 13:23:32

标签: c# .net wpf validation mvvm

我有一个文本框,其Text属性绑定到视图模型中的整数属性。如果用户输入的文本是整数,则WPF会自动验证。这个功能对我有好处,因此我不需要构建额外的验证。

现在我有一个按钮,其Command属性绑定到同一视图模型中的命令,如果有任何验证错误,我希望该命令的CanExecute方法返回false。 / p>

是否有可能在视图模型中知道是否存在任何验证错误?

1 个答案:

答案 0 :(得分:1)

我想提出这个问题:

  • 向视图模型添加布尔HasErrors属性。
  • 我的属性设置者:在您的中调用一个(或多个)自定义验证方法 viewmodel(然后通知属性更改)
  • 在验证方法中:将HasErrors属性设置为true 如果有错误,或者如果没有错误则将其设置为false。
  • 使用CanExecute方法:检查HasErrors属性


上述步骤是实现.NET 4.5中引入的INotifyDataErrorInfo接口(参见this文章)的简化版本。

如果您愿意,您也可以完全实现此链接文章中描述的界面,但我认为这比您的需要更多。

使用INotifyDataErrorInfo,您可以为每个属性设置和检索错误列表,但这似乎不是您的要求,这就是为什么我提供了一个更简单的示例,只有一个国旗HasErrors