Condividi tramite


ValidationError Classe

Definizione

Rappresenta un errore di convalida creato dal motore di associazione quando un ValidationRule oggetto segnala un errore di convalida o tramite il MarkInvalid(BindingExpressionBase, ValidationError) metodo 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 oggetto ToolTip 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. Di seguito viene 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 tutti gli elementi ValidationError che potrebbero essere stati aggiunti alla Validation.Errors proprietà associata dell'elemento associato. Controlla quindi se sono definite regole di convalida personalizzate per tale Bindingoggetto , nel qual caso chiama il Validate metodo su ognuno ValidationRule fino a quando una di esse non riesce o fino a quando non vengono passate tutte.

  2. Quando è presente una regola personalizzata che non viene passata, il motore di associazione crea un ValidationError oggetto e lo aggiunge alla Validation.Errors raccolta dell'elemento associato. Quando Validation.Errors non è vuoto, la Validation.HasError proprietà associata dell'elemento è impostata su true. Inoltre, se la NotifyOnValidationError proprietà di è impostata su true, il motore di Binding associazione genera l'evento Validation.Error associato 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 ExceptionValidationRule oggetto e viene generata un'eccezione durante il passaggio 3 o 4, il motore di associazione verifica se è presente un oggetto UpdateSourceExceptionFilter. È possibile usare il UpdateSourceExceptionFilter callback per fornire un gestore personalizzato per la gestione delle eccezioni. Se un oggetto UpdateSourceExceptionFilter 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 valori valido in entrambe le direzioni (destinazione all'origine o all'origine di destinazione) cancella la Validation.Errors proprietà associata.

Costruttori

Nome Descrizione
ValidationError(ValidationRule, Object, Object, Exception)

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

ValidationError(ValidationRule, Object)

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

Proprietà

Nome Descrizione
BindingInError

Ottiene l'oggetto o MultiBindingExpression dell'oggetto .BindingExpressionValidationError L'oggetto è contrassegnato come non valido in modo esplicito o ha una regola di convalida non riuscita.

ErrorContent

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

Exception

Ottiene o imposta l'oggetto Exception che è la causa di questo ValidationErroroggetto , se l'errore è il risultato di un'eccezione.

RuleInError

Ottiene o imposta l'oggetto ValidationRule che è la causa di questo ValidationErroroggetto , se l'errore è il risultato di una regola di convalida.

Metodi

Nome Descrizione
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 il Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche