在WPF中,有3种方法可以进行验证:
IDataErrorInfo
INotifyDataErrorInfo
是否可以同时使用这些组合?根据我的需要,我想以INotifyDataErrorInfo的灵活性验证新规则,但不想干扰我想要验证的同一对象的现有ValidationRules。
答案 0 :(得分:2)
<强> 1。混合不同的错误来源
是的,您可以混合引用的三种验证:
ValidationRules
适用于GUI(表面)验证IDataErrorInfo
在视图模型/ b对象上实现。它适用于更多面向业务的验证INotifiDataErrorInfo
也在视图模型/业务对象上实现。它增加了给定字段上出现多个错误的可能性,并且还增加了异步验证(即服务器或线程可能需要时间来回答这个问题)。 最后一个错误来源实施的时间实际上更长
<强> 2。考虑到错误
最困难的是,如果要防止在数据无效时关闭窗口,请考虑不同的错误来源。
必须在GUI绑定中查找ValidationRules错误,因为无效数据无法访问业务对象/ ViewModel。
可以在ViewModel图层中查看 IDataErrorInfo
和INotifiDataErrorInfo
。
此致