【问题标题】:Awareness of validation errors in view model意识到视图模型中的验证错误
【发布时间】:2015-09-08 13:23:32
【问题描述】:

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

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

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

【问题讨论】:

标签: c# .net wpf validation mvvm


【解决方案1】:

我想提出这个建议:

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


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

如果您愿意,也可以按照链接文章中的说明完全实现此接口,但我认为这超出了您的需要。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-04
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    • 2018-02-11
    • 2010-11-18
    • 1970-01-01
    • 2017-08-17
    相关资源
    最近更新 更多