我正在为WPF DataBinding实现自定义ValidationRule
。为此,我只是从ValidationRule
继承并实现一些或多个抽象或虚拟方法。这是我正在实施的方法:
public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo, System.Windows.Data.BindingExpressionBase owner)
我要返回的ValidationResult
对象必须为true
属性false
或IsValid
。这在逻辑上似乎我错过了第三个选项Unknown或Undetermined。在某些情况下,验证者可能不适用。
那么在这些情况下我该返回什么?我可以安全地返回null
吗?
答案 0 :(得分:0)
NO !!验证器不应该从null
方法的任何重载返回Validate
,并且在您要求它之前也不应该抛出异常。在任何一种情况下,您的应用程序都会在框架代码中遇到未处理的异常,并且可能会崩溃。
所以只需接受不完美的语义,如果你希望自定义验证器基本上是无操作,则返回ValidationResult.ValidResult
。
来源:在.NET 4.5上测试