你能安全地从自定义ValidationRule返回null,表示没有执行验证吗?

时间:2014-01-24 23:59:57

标签: wpf null validationrules validationrule

我正在为WPF DataBinding实现自定义ValidationRule。为此,我只是从ValidationRule继承并实现一些或多个抽象或虚拟方法。这是我正在实施的方法:

public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo, System.Windows.Data.BindingExpressionBase owner)

我要返回的ValidationResult对象必须为true属性falseIsValid。这在逻辑上似乎我错过了第三个选项Unknown或Undetermined。在某些情况下,验证者可能不适用。

那么在这些情况下我该返回什么?我可以安全地返回null吗?

1 个答案:

答案 0 :(得分:0)

NO !!验证器不应该从null方法的任何重载返回Validate,并且在您要求它之前也不应该抛出异常。在任何一种情况下,您的应用程序都会在框架代码中遇到未处理的异常,并且可能会崩溃。

所以只需接受不完美的语义,如果你希望自定义验证器基本上是无操作,则返回ValidationResult.ValidResult

来源:在.NET 4.5上测试