ValidationError 类

定义

表示一个验证错误,该错误在 ValidationRule 报告验证错误时由绑定引擎创建,或者通过 MarkInvalid(BindingExpressionBase, ValidationError) 方法显式创建。

public ref class ValidationError
public class ValidationError
type ValidationError = class
Public Class ValidationError
继承
ValidationError

示例

以下示例演示了一个样式触发器,该触发器创建 ToolTip 报告验证错误消息的 。 Validation.Errors附加属性返回绑定元素上的 对象的集合ValidationError

<Style x:Key="textStyleTextBox" TargetType="TextBox">
  <Setter Property="Foreground" Value="#333333" />
  <Setter Property="MaxLength" Value="40" />
  <Setter Property="Width" Value="392" />
  <Style.Triggers>
    <Trigger Property="Validation.HasError" Value="true">
      <Setter Property="ToolTip"
        Value="{Binding RelativeSource={RelativeSource Self},
                        Path=(Validation.Errors)[0].ErrorContent}"/>
    </Trigger>
  </Style.Triggers>
</Style>

注解

WPF 数据绑定模型使你可以将验证规则与 Binding 对象相关联。 在调用转换器之前,在目标到源值传输期间进行验证。 下面描述了验证过程。

  1. 当值从目标属性传输到源属性时,数据绑定引擎首先删除 ValidationError 可能已添加到 Validation.Errors 绑定元素的附加属性中的任何值。 然后,它会检查是否为该Binding定义任何自定义验证规则,在这种情况下,它会在每个ValidationRule规则上调用 方法,Validate直到其中一个规则失败或所有规则都通过。

  2. 存在不传递的自定义规则后,绑定引擎将创建一个 ValidationError 对象,并将其添加到 Validation.Errors 绑定元素的集合中。 如果 Validation.Errors 不为空,则元素的 Validation.HasError 附加属性设置为 true。 此外,如果 BindingNotifyOnValidationError 属性设置为 true,则绑定引擎将在元素上引发 Validation.Error 附加事件。

  3. 如果所有规则都通过,则绑定引擎会调用转换器(如果存在)。

  4. 如果转换器通过,绑定引擎将调用源属性的 setter。

  5. 如果绑定具有与之关联的 , ExceptionValidationRule 并在步骤 3 或步骤 4 期间引发异常,则绑定引擎会检查是否存在 UpdateSourceExceptionFilter。 可以使用 UpdateSourceExceptionFilter 回叫来提供用于处理异常的自定义处理程序。 如果未在 Binding 上指定 UpdateSourceExceptionFilter,则绑定引擎会创建具有异常的 ValidationError 并将其添加到绑定元素的 Validation.Errors 集合中。

(目标到源或源到目标) 方向的有效值转移将清除 Validation.Errors 附加属性。

构造函数

ValidationError(ValidationRule, Object)

使用指定的参数初始化 ValidationError 类的新实例。

ValidationError(ValidationRule, Object, Object, Exception)

使用指定的参数初始化 ValidationError 类的新实例。

属性

BindingInError

获取此 BindingExpressionMultiBindingExpressionValidationError对象。 该对象或者被显式标记为无效,或者具有失败的验证规则。

ErrorContent

获取或设置一个对象,该对象为此 ValidationError 提供其他上下文,如描述错误的字符串。

Exception

获取或设置导致此 ExceptionValidationError 对象(如果此错误是异常造成的)。

RuleInError

获取或设置导致此 ValidationRuleValidationError 对象(如果此错误是验证规则造成的)。

方法

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

返回表示当前对象的字符串。

(继承自 Object)

适用于

另请参阅