在WPF中,有三种方法可以进行验证:
- 验证规则(Validation Rules)
IDataErrorInfo
INotifyDataErrorInfo
IDataErrorInfo
INotifyDataErrorInfo
1. 混合不同的错误来源
您可以混合三种您引用的验证方式:
ValidationRules
适用于 GUI(表面)验证。IDataErrorInfo
实现在视图模型/业务对象上。它适用于更加业务化的验证。INotifyDataErrorInfo
也是实现在视图模型/业务对象上。它增加了在给定字段上多个错误的可能性,并且还增加了异步验证(即服务器或线程需要一些时间才能响应验证)。最后一种错误来源实际上需要更长的实现时间。
2. 考虑错误
最困难的部分是考虑不同的错误来源,以便在数据无效时防止窗口关闭。
ValidationRules
错误必须在 GUI 绑定中查找,因为无效数据没有到达业务对象/视图模型。
IDataErrorInfo
和 INotifiDataErrorInfo
可以在视图模型层中查找。
祝好!