Validation.Error 附加事件

定义

在绑定元素遇到验证错误时发生,但仅针对 NotifyOnValidationError 值设置为 true 的绑定。

see AddErrorHandler, and RemoveErrorHandler
see AddErrorHandler, and RemoveErrorHandler
see AddErrorHandler, and RemoveErrorHandler

注解

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

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

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

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

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

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

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

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

路由事件信息

标识符字段 ErrorEvent
路由策略 鼓 泡
委托 EventHandler<TEventArgs>,受约束 ValidationErrorEventArgs

适用于