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