Validation.Error Validation.Error Validation.Error Attached Event

Definición

Se produce cuando el elemento enlazado detecta un error de validación, pero sólo para los enlaces con el valor de NotifyOnValidationError establecido en true.Occurs when the bound element runs into a validation error, but only for bindings with the NotifyOnValidationError value set to true.

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

Comentarios

El WPFWPF modelo de enlace de datos permite asociar ValidationRules con su Binding objeto.The WPFWPF data binding model enables you to associate ValidationRules with your Binding object. Validación se produce durante la transferencia de valor de origen de destino para el enlace de enlace antes de llama el convertidor.Validation occurs during binding target-to-binding source value transfer before the converter is called. El siguiente describe el proceso de validación:The following describes the validation process:

  1. Cuando se transfiere un valor de la propiedad de destino para la propiedad de origen, el motor de enlace de datos quita primero cualquier ValidationError que es posible que haya agregado a la Validation.Errors adjunta la propiedad del elemento enlazado.When a value is being transferred from the target property to the source property, the data binding engine first removes any ValidationError that may have been added to the Validation.Errors attached property of the bound element. A continuación, comprueba si hay cualquier personalizado ValidationRules definido para esa Binding, en cuyo caso llama a la Validate método en cada uno de los ValidationRules hasta que uno de ellos se ejecuta en un error o hasta que todos ellos pasan.It then checks if there are any custom ValidationRules defined for that Binding, in which case it calls the Validate method on each of the ValidationRules until one of them runs into an error or until all of them pass.

  2. Una vez que hay una regla personalizada que no pasa, el motor de enlace crea un ValidationError objeto y lo agrega a la Validation.Errors colección del elemento enlazado.Once there is a custom rule that does not pass, the binding engine creates a ValidationError object and adds it to the Validation.Errors collection of the bound element. Cuando Validation.Errors no está vacío, el Validation.HasError propiedad adjunta del elemento se establece en true.When Validation.Errors is not empty, the Validation.HasError attached property of the element is set to true. También, si la NotifyOnValidationError propiedad de la Binding está establecido en true, a continuación, el motor de enlace provoca el Validation.Error evento en el elemento adjunto.Also, if the NotifyOnValidationError property of the Binding is set to true, then the binding engine raises the Validation.Error attached event on the element.

  3. Si se superan todas las reglas, el motor de enlace, a continuación, llama al convertidor, si existe alguno.If all of the rules pass, the binding engine then calls the converter, if one exists.

  4. Si pasa el convertidor, el motor de enlace llama al establecedor de la propiedad de origen.If the converter passes, the binding engine calls the setter of the source property.

  5. Si el enlace tiene una ExceptionValidationRule asociados con él y se produce una excepción durante el paso 4, el motor de enlace comprueba si hay un UpdateSourceExceptionFilter.If the binding has an ExceptionValidationRule associated with it and an exception is thrown during step 4, the binding engine checks to see if there is a UpdateSourceExceptionFilter. Tiene la opción para usar el UpdateSourceExceptionFilter devolución de llamada para proporcionar un controlador personalizado para controlar las excepciones.You have the option to use the UpdateSourceExceptionFilter callback to provide a custom handler for handling exceptions. Si un UpdateSourceExceptionFilter no se especifica en el Binding, el motor de enlace crea un ValidationError con la excepción y lo agrega a la Validation.Errors colección del elemento enlazado.If an UpdateSourceExceptionFilter is not specified on the Binding, the binding engine creates a ValidationError with the exception and adds it to the Validation.Errors collection of the bound element.

Tenga en cuenta también que una transferencia de valor válido en cualquier dirección (origen de destino o de origen al destino) borra la Validation.Errors propiedad adjunta.Also note that a valid value transfer in either direction (target-to-source or source-to-target) clears the Validation.Errorsattached property.

Para obtener más información, vea "Validación de datos" en Data Binding Overview.For more information, see "Data Validation" in Data Binding Overview.

Información sobre eventos enrutadosRouted Event Information

Campo de identificadorIdentifier field ErrorEvent
Estrategia de enrutamientoRouting strategy PropagaciónBubbling
delegadoDelegate EventHandler<TEventArgs>, restringido por ValidationErrorEventArgsEventHandler<TEventArgs>, constrained by ValidationErrorEventArgs

Se aplica a