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 Binding el objeto.The WPFWPF data binding model enables you to associate ValidationRules with your Binding object. La validación se produce durante la transferencia del valor de origen al enlace del destino de enlace antes de llamar al convertidor.Validation occurs during binding target-to-binding source value transfer before the converter is called. A continuación se describe el proceso de validación:The following describes the validation process:

  1. Cuando se transfiere un valor desde la propiedad de destino a la propiedad de origen, el motor de enlace de datos ValidationError quita primero cualquier que se haya agregado Validation.Errors a la propiedad adjunta 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 algún personalizado ValidationRuledefinido para eso Binding, en cuyo caso llama al 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 se pasa, el motor de enlace ValidationError crea un objeto y lo agrega Validation.Errors a la 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, la 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. Además, si la NotifyOnValidationError propiedad Binding de se establece en true, el motor de enlace genera el Validation.Error evento adjunto en el elemento.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 todas las reglas pasan, el motor de enlace llama entonces al convertidor, si existe uno.If all of the rules pass, the binding engine then calls the converter, if one exists.

  4. Si se 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 asociado ExceptionValidationRule un objeto y se produce una excepción durante el paso 4, el motor de enlace comprueba para ver si hay un UpdateSourceExceptionFilterobjeto.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 de usar la UpdateSourceExceptionFilter devolución de llamada para proporcionar un controlador personalizado para controlar excepciones.You have the option to use the UpdateSourceExceptionFilter callback to provide a custom handler for handling exceptions. Si no UpdateSourceExceptionFilter se especifica un Bindingen, 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álida en cualquier dirección (de destino a origen o de origen a destino) borra 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 información general sobre el enlace de datos.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 porValidationErrorEventArgsEventHandler<TEventArgs>, constrained by ValidationErrorEventArgs

Se aplica a