Condividi tramite


ValidationError Classe

Definizione

Rappresenta un errore di convalida creato dal motore di associazione quando un oggetto ValidationRule segnala un errore di convalida o tramite il metodo MarkInvalid(BindingExpressionBase, ValidationError) in modo esplicito.

public ref class ValidationError
public class ValidationError
type ValidationError = class
Public Class ValidationError
Ereditarietà
ValidationError

Esempio

Nell'esempio seguente viene illustrato un trigger di stile che crea un ToolTip oggetto che segnala un messaggio di errore di convalida. La Validation.Errors proprietà associata restituisce una raccolta di ValidationError oggetti sull'elemento associato.

<Style x:Key="textStyleTextBox" TargetType="TextBox">
  <Setter Property="Foreground" Value="#333333" />
  <Setter Property="MaxLength" Value="40" />
  <Setter Property="Width" Value="392" />
  <Style.Triggers>
    <Trigger Property="Validation.HasError" Value="true">
      <Setter Property="ToolTip"
        Value="{Binding RelativeSource={RelativeSource Self},
                        Path=(Validation.Errors)[0].ErrorContent}"/>
    </Trigger>
  </Style.Triggers>
</Style>

Commenti

Il modello di data binding WPF consente di associare regole di convalida all'oggetto Binding . La convalida viene eseguita durante il trasferimento del valore da destinazione a origine prima che venga chiamato il convertitore. Viene di seguito descritto il processo di convalida.

  1. Quando un valore viene trasferito dalla proprietà di destinazione alla proprietà di origine, il motore di associazione dati rimuove prima di tutto qualsiasi ValidationError elemento aggiunto alla Validation.Errors proprietà associata dell'elemento associato. Verifica quindi se sono definite regole di convalida personalizzate per tale Bindingoggetto , nel qual caso chiama il Validate metodo su ognuno ValidationRule fino a quando uno di essi non ha esito negativo o fino a quando non vengono passate tutte.

  2. Quando è presente una regola personalizzata che non passa, il motore di associazione crea un ValidationError oggetto e lo aggiunge alla raccolta dell'elemento associato Validation.Errors . Quando Validation.Errors non è vuoto, la Validation.HasError proprietà associata dell'elemento è impostata su true. Inoltre, se la proprietà NotifyOnValidationError dell'oggetto Binding è impostata su true, il motore di binding genera l'evento associato Validation.Error sull'elemento.

  3. Se tutte le regole vengono passate, il motore di associazione chiama il convertitore, se presente.

  4. Se il convertitore passa, il motore di associazione chiama il setter della proprietà di origine.

  5. Se al binding è associato un oggetto ExceptionValidationRule e viene generata un'eccezione durante il passaggio 3 o 4, il motore di associazione verifica se è presente un oggetto UpdateSourceExceptionFilter. È possibile usare il callback UpdateSourceExceptionFilter per fornire un gestore personalizzato per la gestione delle eccezioni. UpdateSourceExceptionFilter Se un oggetto non viene specificato in Binding, il motore di associazione crea un ValidationError oggetto con l'eccezione e lo aggiunge alla Validation.Errors raccolta dell'elemento associato.

Un trasferimento di valore valido in entrambe le direzioni (destinazione all'origine o alla destinazione) cancella la Validation.Errors proprietà associata.

Costruttori

ValidationError(ValidationRule, Object, Object, Exception)

Inizializza una nuova istanza della classe ValidationError con i parametri specificati.

ValidationError(ValidationRule, Object)

Inizializza una nuova istanza della classe ValidationError con i parametri specificati.

Proprietà

BindingInError

Ottiene l'oggetto BindingExpression o MultiBindingExpression dell'oggetto ValidationError corrente. L'oggetto viene contrassegnato come non valido in modo esplicito o presenta una regola di convalida con errore.

ErrorContent

Ottiene o imposta un oggetto che fornisce contesto aggiuntivo per questo ValidationError, ad esempio una stringa che descrive l'errore.

Exception

Ottiene o imposta l'oggetto Exception che ha generato l'oggetto ValidationError, se l'errore è il risultato di un'eccezione.

RuleInError

Ottiene o imposta l'oggetto ValidationRule che ha generato l'oggetto ValidationError corrente, se l'errore è il risultato di una regola di convalida.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche