我正在为WPF开发一个简单的验证框架(IDataErrorInfo方法没有为我的需求提供足够的信息),并且想知道在Property要验证时是否有通知方法?请注意,我需要知道它何时会尝试验证而不是仅在出现错误时(因此NotifyOnValidationError不会将其删除)
或者,我的最终目标只是将更多信息打包到我的验证中(错误的重要性,链接以获取更多信息等),同时仍然允许验证由数据对象驱动( IDataErrorInfo样式)。如果有人能指出我这样做的方法那么我也会非常开心。 :)
答案 0 :(得分:2)
您将遇到的问题是WPF数据绑定和验证与IDataErrorInfo接口相关联。绑定根据绑定的UpdateSourceTrigger属性检查验证。因此,如果您的绑定具有“UpdateSourceTrigger = PropertyChanged”,那么每次属性更改时,它都会调用项目[“MyProperty”],您可以在此处返回有关您的属性是否有效的信息。如果它设置为“LostFocus”,那么只要控件失去焦点,它就会进行检查。绑定还需要“ValidatesOnDataErrors = True”,以便强制对绑定实体进行验证。
我认为最好的办法是创建一个实现IDataErrorInfo的类,然后根据错误的严重程度提供更详细的信息。
答案 1 :(得分:1)
您需要研究从ValidationRule继承,然后将新规则添加到所有绑定对象。