可以使用ValidationRules和INotifyDataErrorInfo的组合进行wpf验证吗?

时间:2015-11-10 12:01:18

标签: c# wpf validation idataerrorinfo inotifydataerrorinfo

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

  • 验证规则
  • IDataErrorInfo
  • INotifyDataErrorInfo

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

1 个答案:

答案 0 :(得分:2)

<强> 1。混合不同的错误来源

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

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

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

<强> 2。考虑到错误

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

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

可以在ViewModel图层中查看

IDataErrorInfoINotifiDataErrorInfo

此致