通过


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. 将值从目标属性传输到源属性时,数据绑定引擎首先删除可能已添加到Validation.Errors绑定元素的附加属性中的任何ValidationError值。 然后,它会检查是否为此Binding定义了任何自定义验证规则,在这种情况下,它会对每个ValidationRule规则调用Validate方法,直到其中一个规则失败或全部通过。

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

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

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

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

在任一方向(目标到源或源到目标)的有效值传输将清除 Validation.Errors 附加属性。

构造函数

名称 说明
ValidationError(ValidationRule, Object, Object, Exception)

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

ValidationError(ValidationRule, Object)

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

属性

名称 说明
BindingInError

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

ErrorContent

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

Exception

获取或设置 Exception 作为此 ValidationError原因的对象(如果错误是异常的结果)。

RuleInError

获取或设置 ValidationRule 作为此 ValidationError原因的对象(如果错误是验证规则的结果)。

方法

名称 说明
Equals(Object)

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

(继承自 Object)
GetHashCode()

用作默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object的浅表副本。

(继承自 Object)
ToString()

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

(继承自 Object)

适用于

另请参阅