如何强制派生ValidationAttribute的数据绑定验证来调用IsValid(对象,ValidationContext)而不是IsValid(对象)

时间:2017-08-09 15:28:53

标签: c# winforms validation data-binding devexpress

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

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

属性具有自定义ValidationAttributes,它们都覆盖IsValid-Methods:

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

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

有人可以解释这种行为吗?

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

1 个答案:

答案 0 :(得分:0)

在此处找到此问题的解决方案:How to create a custom validation attribute?

Ryan对所选答案的评论(6月29日)解释了这一点。我所要做的就是添加:

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

现在始终调用IsValid(object,ValidationContext)。