ValidationError 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示绑定引擎在报告验证错误时 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 相关联。 在调用转换器之前,在目标到源值传输期间进行验证。 下面介绍了验证过程。
将值从目标属性传输到源属性时,数据绑定引擎首先删除可能已添加到Validation.Errors绑定元素的附加属性中的任何ValidationError值。 然后,它会检查是否为此Binding定义了任何自定义验证规则,在这种情况下,它会对每个ValidationRule规则调用Validate方法,直到其中一个规则失败或全部通过。
有一个不传递的自定义规则后,绑定引擎将创建一个 ValidationError 对象并将其添加到 Validation.Errors 绑定元素的集合中。 如果 Validation.Errors 不是空,则 Validation.HasError 元素的附加属性设置为
true。 此外,如果设置为该NotifyOnValidationError属性Bindingtrue,绑定引擎将在元素上引发Validation.Error附加事件。如果所有规则都通过,则绑定引擎会调用转换器(如果存在)。
如果转换器通过,绑定引擎将调用源属性的 setter。
如果绑定具有 ExceptionValidationRule 与之关联的绑定,并在步骤 3 或 4 期间引发异常,则绑定引擎会检查是否存在异常 UpdateSourceExceptionFilter。 可以使用 UpdateSourceExceptionFilter 回调提供用于处理异常的自定义处理程序。 如果未指定Binding绑定UpdateSourceExceptionFilter元素,绑定引擎将创建一个ValidationError异常,并将其添加到Validation.Errors绑定元素的集合中。
在任一方向(目标到源或源到目标)的有效值传输将清除 Validation.Errors 附加属性。
构造函数
| 名称 | 说明 |
|---|---|
| ValidationError(ValidationRule, Object, Object, Exception) |
使用指定的参数初始化类的新实例 ValidationError 。 |
| ValidationError(ValidationRule, Object) |
使用指定的参数初始化类的新实例 ValidationError 。 |
属性
| 名称 | 说明 |
|---|---|
| BindingInError |
获取此ValidationError对象的BindingExpression或MultiBindingExpression对象。 该对象被显式标记为无效,或者具有失败的验证规则。 |
| ErrorContent |
获取或设置一个对象,该 ValidationError对象为此提供附加上下文,例如描述错误的字符串。 |
| Exception |
获取或设置 Exception 作为此 ValidationError原因的对象(如果错误是异常的结果)。 |
| RuleInError |
获取或设置 ValidationRule 作为此 ValidationError原因的对象(如果错误是验证规则的结果)。 |
方法
| 名称 | 说明 |
|---|---|
| Equals(Object) |
确定指定的对象是否等于当前对象。 (继承自 Object) |
| GetHashCode() |
用作默认哈希函数。 (继承自 Object) |
| GetType() |
获取当前实例的 Type。 (继承自 Object) |
| MemberwiseClone() |
创建当前 Object的浅表副本。 (继承自 Object) |
| ToString() |
返回一个表示当前对象的字符串。 (继承自 Object) |