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