【问题标题】:How do I force Databound Validation of derived ValidationAttribute to call IsValid(object, ValidationContext) instead of IsValid(object)如何强制派生 ValidationAttribute 的数据绑定验证调用 IsValid(object, ValidationContext) 而不是 IsValid(object)
【发布时间】:2018-01-17 14:12:42
【问题描述】:

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

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

这些属性有自定义的ValidationAttributes,它覆盖了两个IsValid-Methods:

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

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

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

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

【问题讨论】:

    标签: c# winforms validation data-binding devexpress


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-30
      相关资源
      最近更新 更多