如何强制派生的验证属性的数据绑定验证调用IsValid(object,ValidationContext)而不是IsVa



我有一个有多个控件的表单。

使用 BindingSource,我将 MyClass 的属性绑定到控件。

这些属性具有自定义验证属性,这些属性覆盖两个 IsValid-Methods:

IsValid(object value);
IsValid(object value, ValidationContext validationContext);

当我在控件中输入某些内容时,属性会正确验证,但是使用我的自定义验证属性,它只能通过 IsValid(对象值(-方法进行验证。是否可以强制验证通过IsValid(对象值,ValidationContext validationContext(运行?

有人能解释这种行为吗?

我确实意识到如果我使用 Validator 类,它将通过 IsValid(对象值,ValidationContext validationContext(运行,但我不希望验证由表单/数据绑定自动处理。

在这里找到了这个问题的解决方案:如何创建自定义验证属性?

瑞安对所选答案的评论(6月29日(对此进行了解释。我所要做的就是添加这个:

public override bool RequiresValidationContext { get { return true; } }

现在总是调用IsValid(object,ValidationContext(。