Validation.Errors 附加属性

定义

获取绑定元素上所有活动 ValidationError 对象的集合。

see GetErrors
see GetErrors
see GetErrors

注解

应用程序无法修改此集合的内容。 有关如何使用此附加属性的示例,请参阅示例部分。

WPF 数据绑定模型使你能够与Binding对象关联ValidationRules。 在调用转换器之前,在绑定目标到绑定源值传输期间进行验证。 下面介绍了验证过程:

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

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

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

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

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

另请注意, (目标到源或源到目标方向的有效值传输) 清除 ValidationErrors附加属性。

有关方案中此属性 MultiBinding 的行为的信息,请参阅 ValidationError

有关详细信息,请参阅数据 绑定概述中的“数据验证”。

XAML 文本用法

请参阅“备注”。 集合 Errors 本身不是用户可设置的,但你可以在 XAML 的控件模板定义中使用它。

依赖项属性信息

标识符字段 ErrorsProperty
元数据属性设置为 true IsNotDataBindable

适用于