Validation.Error Evento associato

Definizione

Si verifica in caso di errore di convalida dell'elemento associato, ma solo per le associazioni il cui valore NotifyOnValidationError è impostato su 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

Commenti

Il WPFWPF modello di data binding consente di associare all' ValidationRules Binding oggetto.The WPFWPF data binding model enables you to associate ValidationRules with your Binding object. La convalida viene eseguita durante il trasferimento del valore di origine da destinazione a binding prima che venga chiamato il convertitore.Validation occurs during binding target-to-binding source value transfer before the converter is called. Di seguito viene descritto il processo di convalida:The following describes the validation process:

  1. Quando un valore viene trasferito dalla proprietà di destinazione alla proprietà di origine, il motore di data binding rimuove prima tutti i ValidationError che potrebbero essere stati aggiunti alla Validation.Errors proprietà associata dell'elemento associato.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. Verifica quindi se sono presenti oggetti personalizzati ValidationRule definiti Binding , nel qual caso chiama il Validate metodo su ogni oggetto ValidationRule fino a quando uno di essi non viene eseguito in un errore o fino a quando non vengono superati tutti.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. Quando è presente una regola personalizzata che non viene superata, il motore di binding crea un ValidationError oggetto e lo aggiunge alla Validation.Errors raccolta dell'elemento associato.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. Quando Validation.Errors non è vuoto, la Validation.HasError proprietà associata dell'elemento viene impostata su true .When Validation.Errors is not empty, the Validation.HasError attached property of the element is set to true. Inoltre, se la NotifyOnValidationError proprietà di Binding è impostata su true , il motore di binding genera l' Validation.Error evento associato sull'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. Se tutte le regole passano, il motore di associazione chiama il convertitore, se disponibile.If all of the rules pass, the binding engine then calls the converter, if one exists.

  4. Se il convertitore passa, il motore di binding chiama il setter della proprietà Source.If the converter passes, the binding engine calls the setter of the source property.

  5. Se al binding è associato un oggetto ExceptionValidationRule e viene generata un'eccezione durante il passaggio 4, il motore di associazione verifica se è presente 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. È possibile usare il UpdateSourceExceptionFilter callback per fornire un gestore personalizzato per la gestione delle eccezioni.You have the option to use the UpdateSourceExceptionFilter callback to provide a custom handler for handling exceptions. Se un oggetto UpdateSourceExceptionFilter non è specificato in Binding , il motore di associazione crea un oggetto ValidationError con l'eccezione e lo aggiunge alla Validation.Errors raccolta dell'elemento associato.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.

Si noti anche che un trasferimento di valore valido in entrambe le direzioni (da destinazione a origine o da origine a destinazione) cancella Validation . Errors Proprietà associata.Also note that a valid value transfer in either direction (target-to-source or source-to-target) clears the Validation.Errorsattached property.

Per ulteriori informazioni, vedere "convalida dei dati" in Cenni preliminari sul data binding.For more information, see "Data Validation" in Data Binding Overview.

Informazioni evento indirizzatoRouted Event Information

Campo identificatoreIdentifier field ErrorEvent
Strategia di routingRouting strategy BubblingBubbling
DelegatoDelegate EventHandler<TEventArgs>, vincolato da ValidationErrorEventArgsEventHandler<TEventArgs>, constrained by ValidationErrorEventArgs

Si applica a