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 对象相关联。 在调用转换器之前,在目标到源值传输期间进行验证。 下面描述了验证过程。
当值从目标属性传输到源属性时,数据绑定引擎首先删除 ValidationError 可能已添加到 Validation.Errors 绑定元素的附加属性中的任何值。 然后,它会检查是否为该Binding定义任何自定义验证规则,在这种情况下,它会在每个ValidationRule规则上调用 方法,Validate直到其中一个规则失败或所有规则都通过。
存在不传递的自定义规则后,绑定引擎将创建一个 ValidationError 对象,并将其添加到 Validation.Errors 绑定元素的集合中。 如果 Validation.Errors 不为空,则元素的 Validation.HasError 附加属性设置为
true
。 此外,如果 Binding 的 NotifyOnValidationError 属性设置为true
,则绑定引擎将在元素上引发 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 |
获取此 BindingExpression 的 MultiBindingExpression 或 ValidationError对象。 该对象或者被显式标记为无效,或者具有失败的验证规则。 |
ErrorContent |
获取或设置一个对象,该对象为此 ValidationError 提供其他上下文,如描述错误的字符串。 |
Exception |
获取或设置导致此 Exception 的 ValidationError 对象(如果此错误是异常造成的)。 |
RuleInError |
获取或设置导致此 ValidationRule 的 ValidationError 对象(如果此错误是验证规则造成的)。 |
方法
Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
GetHashCode() |
作为默认哈希函数。 (继承自 Object) |
GetType() |
获取当前实例的 Type。 (继承自 Object) |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
ToString() |
返回表示当前对象的字符串。 (继承自 Object) |