ValidationRule.Validate 方法

定义

对值执行验证检查。

重载

Validate(Object, CultureInfo)

在派生类中重写时,对值执行验证检查。

Validate(Object, CultureInfo, BindingExpressionBase)

对值执行验证检查。

Validate(Object, CultureInfo, BindingGroup)

对值执行验证检查。

Validate(Object, CultureInfo)

在派生类中重写时,对值执行验证检查。

public:
 abstract System::Windows::Controls::ValidationResult ^ Validate(System::Object ^ value, System::Globalization::CultureInfo ^ cultureInfo);
public abstract System.Windows.Controls.ValidationResult Validate (object value, System.Globalization.CultureInfo cultureInfo);
abstract member Validate : obj * System.Globalization.CultureInfo -> System.Windows.Controls.ValidationResult
Public MustOverride Function Validate (value As Object, cultureInfo As CultureInfo) As ValidationResult

参数

value
Object

要检查的来自绑定目标的值。

cultureInfo
CultureInfo

要在此规则中使用的区域性。

返回

ValidationResult 对象。

示例

以下示例演示如何实现验证规则。 在以下示例中,如果输入值包含非数字字符或超出下限和上限,则输入值无效。 如果输入值无效,则将 ErrorContent 属性设置为相应的错误消息, IsValid 并将 属性设置为 false

有关完整示例,请参阅 如何:实现绑定验证

public class AgeRangeRule : ValidationRule
{
    public int Min { get; set; }
    public int Max { get; set; }
    
    public AgeRangeRule()
    {
    }

    public override ValidationResult Validate(object value, CultureInfo cultureInfo)
    {
        int age = 0;

        try
        {
            if (((string)value).Length > 0)
                age = Int32.Parse((String)value);
        }
        catch (Exception e)
        {
            return new ValidationResult(false, $"Illegal characters or {e.Message}");
        }

        if ((age < Min) || (age > Max))
        {
            return new ValidationResult(false,
              $"Please enter an age in the range: {Min}-{Max}.");
        }
        return ValidationResult.ValidResult;
    }
}

注解

在创建 类的 ValidationRule 子类时,必须实现此方法才能创建自定义验证规则。

每当数据绑定引擎将值从用户输入) 从绑定目标属性 (传输到基础数据) (绑定源属性时,都会检查是否为该绑定定义了任何 ValidationRules 值。 如果 ValidationRules 为绑定定义了 ,则引擎 Validate 对每个 ValidationRule 调用 方法,直到其中一个发现错误或所有错误都通过。

有关数据验证的详细信息,请参阅 数据绑定概述

另请参阅

适用于

Validate(Object, CultureInfo, BindingExpressionBase)

对值执行验证检查。

public:
 virtual System::Windows::Controls::ValidationResult ^ Validate(System::Object ^ value, System::Globalization::CultureInfo ^ cultureInfo, System::Windows::Data::BindingExpressionBase ^ owner);
public virtual System.Windows.Controls.ValidationResult Validate (object value, System.Globalization.CultureInfo cultureInfo, System.Windows.Data.BindingExpressionBase owner);
abstract member Validate : obj * System.Globalization.CultureInfo * System.Windows.Data.BindingExpressionBase -> System.Windows.Controls.ValidationResult
override this.Validate : obj * System.Globalization.CultureInfo * System.Windows.Data.BindingExpressionBase -> System.Windows.Controls.ValidationResult
Public Overridable Function Validate (value As Object, cultureInfo As CultureInfo, owner As BindingExpressionBase) As ValidationResult

参数

value
Object

要检查的来自绑定目标的值。

cultureInfo
CultureInfo

要在此规则中使用的区域性。

owner
BindingExpressionBase

使用测试规则的绑定表达式。

返回

ValidationResult 对象。

适用于

Validate(Object, CultureInfo, BindingGroup)

对值执行验证检查。

public:
 virtual System::Windows::Controls::ValidationResult ^ Validate(System::Object ^ value, System::Globalization::CultureInfo ^ cultureInfo, System::Windows::Data::BindingGroup ^ owner);
public virtual System.Windows.Controls.ValidationResult Validate (object value, System.Globalization.CultureInfo cultureInfo, System.Windows.Data.BindingGroup owner);
abstract member Validate : obj * System.Globalization.CultureInfo * System.Windows.Data.BindingGroup -> System.Windows.Controls.ValidationResult
override this.Validate : obj * System.Globalization.CultureInfo * System.Windows.Data.BindingGroup -> System.Windows.Controls.ValidationResult
Public Overridable Function Validate (value As Object, cultureInfo As CultureInfo, owner As BindingGroup) As ValidationResult

参数

value
Object

要检查的来自绑定目标的值。

cultureInfo
CultureInfo

要在此规则中使用的区域性。

owner
BindingGroup

使用测试规则的绑定组。

返回

ValidationResult 对象。

适用于