ValidationRule 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供一种创建自定义规则的方法,用于检查用户输入的有效性。
public ref class ValidationRule abstract
public abstract class ValidationRule
type ValidationRule = class
Public MustInherit Class ValidationRule
- 继承
-
ValidationRule
- 派生
示例
以下示例演示如何实现验证规则。 如果输入值包含非数值字符,或者它位于下限和上限之外,则输入值无效。 如果返回 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;
}
}
注解
使用 WPF 数据绑定模型时,可以与绑定对象相关联 ValidationRules 。 若要创建自定义规则,请创建此类的子类并实现 Validate 该方法。 (可选)使用内置 ExceptionValidationRule函数,它捕获在源更新期间引发的异常,或者 DataErrorValidationRule用于检查源对象的实现引发 IDataErrorInfo 的错误。
每次绑定将输入值(即绑定目标属性值)传输到绑定源属性时,绑定引擎都会检查与绑定关联的每个 ValidationRule 值。
有关数据验证的详细信息,请参阅 数据绑定概述。
有关如何在对话框中验证用户提供的数据的信息,请参阅 对话框概述。
构造函数
| 名称 | 说明 |
|---|---|
| ValidationRule() |
初始化 ValidationRule 类的新实例。 |
| ValidationRule(ValidationStep, Boolean) |
使用指定的验证步骤和一个值初始化类的新实例 ValidationRule ,该值指示在更新目标时验证规则是否运行。 |
属性
| 名称 | 说明 |
|---|---|
| ValidatesOnTargetUpdated |
获取或设置一个值,该值指示在更新目标 Binding 时验证规则是否运行。 |
| ValidationStep |
获取或设置验证规则运行时。 |
方法
| 名称 | 说明 |
|---|---|
| Equals(Object) |
确定指定的对象是否等于当前对象。 (继承自 Object) |
| GetHashCode() |
用作默认哈希函数。 (继承自 Object) |
| GetType() |
获取当前实例的 Type。 (继承自 Object) |
| MemberwiseClone() |
创建当前 Object的浅表副本。 (继承自 Object) |
| ToString() |
返回一个表示当前对象的字符串。 (继承自 Object) |
| Validate(Object, CultureInfo, BindingExpressionBase) |
对值执行验证检查。 |
| Validate(Object, CultureInfo, BindingGroup) |
对值执行验证检查。 |
| Validate(Object, CultureInfo) |
在派生类中重写时,对值执行验证检查。 |