是否可以结合使用 ValidationRules 和 INotifyDataErrorInfo 进行 wpf 验证?
Is is possible to use a combination of ValidationRules and INotifyDataErrorInfo for wpf validation?
在 WPF 中有 3 种方法进行验证:
- 验证规则
IDataErrorInfo
INotifyDataErrorInfo
是否可以同时使用这些组合?根据我的需要,我想使用 INotifyDataErrorInfo 的灵活性来验证新规则,但不想干扰我要验证的同一对象的现有 ValidationRules。
1.混合不同的错误来源
是的,您可以混合使用您引用的三种验证:
ValidationRules
适用于 GUI(表面)验证
IDataErrorInfo
在视图 model/business 对象上实现。适合更多面向业务的验证
INotifyDataErrorInfo
也在视图 model/business 对象上实现。它增加了在给定字段上出现多个错误的可能性,并且还添加了异步验证(即服务器或线程可能需要时间来回答验证)。
最后一个错误源的实施时间确实更长
2。考虑错误
最困难的是当您想要防止 window 在数据无效时被关闭时考虑不同的错误源。
必须在 GUI 绑定中查找 ValidationRules 错误,因为无效数据不会到达业务 object/ViewModel。
IDataErrorInfo
和INotifiDataErrorInfo
可以在ViewModel层查看
此致
在 WPF 中有 3 种方法进行验证:
- 验证规则
IDataErrorInfo
INotifyDataErrorInfo
是否可以同时使用这些组合?根据我的需要,我想使用 INotifyDataErrorInfo 的灵活性来验证新规则,但不想干扰我要验证的同一对象的现有 ValidationRules。
1.混合不同的错误来源
是的,您可以混合使用您引用的三种验证:
ValidationRules
适用于 GUI(表面)验证IDataErrorInfo
在视图 model/business 对象上实现。适合更多面向业务的验证INotifyDataErrorInfo
也在视图 model/business 对象上实现。它增加了在给定字段上出现多个错误的可能性,并且还添加了异步验证(即服务器或线程可能需要时间来回答验证)。
最后一个错误源的实施时间确实更长
2。考虑错误
最困难的是当您想要防止 window 在数据无效时被关闭时考虑不同的错误源。
必须在 GUI 绑定中查找 ValidationRules 错误,因为无效数据不会到达业务 object/ViewModel。
IDataErrorInfo
和INotifiDataErrorInfo
可以在ViewModel层查看
此致