0

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

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

ValidationResult我要返回的对象必须具有truefalse用于该IsValid属性。在我看来,这在逻辑上似乎缺少第三个选项 Unknown 或 Undetermined。在某些情况下,验证者可能不适用。

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

4

1 回答 1

0

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

因此,只需接受不完美的语义,ValidationResult.ValidResult如果您希望自定义验证器本质上是无操作的,则返回。

来源:在 .NET 4.5 上测试

于 2014-01-24T23:59:56.663 回答