我有一个有多个控件的表单。
使用BindingSource,我将MyClass的属性绑定到控件。
属性具有自定义ValidationAttributes,它们都覆盖IsValid-Methods:
IsValid(object value);
IsValid(object value, ValidationContext validationContext);
当我在控件中输入内容时,属性会被正确验证,但是使用我的自定义ValidationAttributes,它只能通过IsValid(对象值)-Method进行验证。 是否可以强制验证通过IsValid(对象值,ValidationContext validationContext)来运行?
有人可以解释这种行为吗?
我确实知道如果我使用Validator类,它将运行IsValid(对象值,ValidationContext validationContext),但我不希望验证由表单/数据绑定自动处理。
答案 0 :(得分:0)
在此处找到此问题的解决方案:How to create a custom validation attribute?
Ryan对所选答案的评论(6月29日)解释了这一点。我所要做的就是添加:
public override bool RequiresValidationContext { get { return true; } }
现在始终调用IsValid(object,ValidationContext)。