可以将ValidationRules和INotifyDataErrorInfo组合用于wpf验证



在WPF中,有三种方法可以进行验证:

  • 验证规则
  • IDataErrorInfo
  • INotifyDataErrorInfo

是否可以同时使用这些功能的组合?根据我的需要,我想使用INotifyDataErrorInfo的灵活性来验证新规则,但不想干扰我要验证的同一对象的现有ValidationRules。

1。混合不同的误差源

是的,你可以混合你所引用的三种验证:

  • ValidationRules适用于GUI(表面)验证
  • IDataErrorInfo是在视图模型/业务对象上实现的。它适用于更面向业务的验证
  • INotifyDataErrorInfo也在视图模型/业务对象上实现。它增加了在给定字段上出现多个错误的可能性,还增加了异步验证(即服务器或线程可能需要时间来回答验证)

最后一个错误源实际上需要更长的时间来实现

2.考虑错误

如果数据无效,要防止窗口关闭,最困难的是要考虑不同的错误源。

必须在GUI绑定中查找ValidationRules错误,因为无效数据无法到达业务对象/ViewModel。

可以在ViewModel层中查看CCD_ 6和CCD_。

问候

最新更新