ValidationError Klasa

Definicja

Reprezentuje błąd weryfikacji, który jest tworzony przez aparat powiązania, gdy ValidationRule zgłasza błąd weryfikacji lub za pośrednictwem MarkInvalid(BindingExpressionBase, ValidationError) metody jawnie.

public ref class ValidationError
public class ValidationError
type ValidationError = class
Public Class ValidationError
Dziedziczenie
ValidationError

Przykłady

W poniższym przykładzie przedstawiono wyzwalacz stylu, który tworzy ToolTip komunikat o błędzie weryfikacji. Validation.Errors Dołączona właściwość zwraca kolekcję ValidationError obiektów w powiązanym elemecie.

<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>

Uwagi

Model powiązania danych WPF umożliwia skojarzenie reguł weryfikacji z obiektem Binding . Walidacja odbywa się podczas transferu wartości docelowej do źródła przed wywołania konwertera. Poniżej opisano proces weryfikacji.

  1. Gdy wartość jest przenoszona z właściwości docelowej do właściwości źródłowej, aparat powiązania danych najpierw usuwa wszystkie ValidationError , które mogły zostać dodane do Validation.Errors dołączonej właściwości elementu powiązanego. Następnie sprawdza, czy wszystkie niestandardowe reguły weryfikacji są zdefiniowane dla tego Bindingelementu , w takim przypadku wywołuje metodę Validate dla każdej ValidationRule z nich, dopóki jedna z nich nie powiedzie się, czy wszystkie z nich nie zostaną przekazane.

  2. Po utworzeniu reguły niestandardowej, która nie zostanie przekazana, aparat powiązania tworzy ValidationError obiekt i dodaje go do Validation.Errors kolekcji powiązanego elementu. Gdy Validation.Errors właściwość nie jest pusta, Validation.HasError dołączona właściwość elementu jest ustawiona na true. Ponadto jeśli właściwość NotifyOnValidationError obiektu Binding jest ustawiona na true, aparat powiązania zgłasza dołączone zdarzenie Validation.Error w elemencie.

  3. Jeśli wszystkie reguły są przekazywane, aparat powiązania wywołuje konwerter, jeśli istnieje.

  4. Jeśli konwerter przejdzie, aparat powiązania wywołuje setter właściwości źródłowej.

  5. Jeśli powiązanie jest ExceptionValidationRule skojarzone z nim i zgłaszany jest wyjątek w kroku 3 lub 4, aparat powiązania sprawdza, czy istnieje .UpdateSourceExceptionFilter Możesz użyć wywołania zwrotnego UpdateSourceExceptionFilter, aby zapewnić niestandardową procedurę obsługi wyjątków. Jeśli element UpdateSourceExceptionFilter nie został określony w elemecie Binding, aparat powiązania tworzy ValidationError obiekt z wyjątkiem i dodaje go do Validation.Errors kolekcji powiązanego elementu.

Prawidłowy transfer wartości w obu kierunkach (element docelowy do źródła lub źródła do obiektu docelowego) spowoduje wyczyszczenie dołączonej Validation.Errors właściwości.

Konstruktory

ValidationError(ValidationRule, Object)

Inicjuje ValidationError nowe wystąpienie klasy z określonymi parametrami.

ValidationError(ValidationRule, Object, Object, Exception)

Inicjuje ValidationError nowe wystąpienie klasy z określonymi parametrami.

Właściwości

BindingInError

Pobiera obiekt BindingExpression lub MultiBindingExpression tego ValidationErrorobiektu . Obiekt jest oznaczony jako nieprawidłowy lub ma regułę weryfikacji, która zakończyła się niepowodzeniem.

ErrorContent

Pobiera lub ustawia obiekt, który udostępnia dodatkowy kontekst dla tego ValidationErrorelementu , na przykład ciąg opisujący błąd.

Exception

Pobiera lub ustawia Exception obiekt, który był przyczyną tego ValidationErrorbłędu , jeśli błąd jest wynikiem wyjątku.

RuleInError

Pobiera lub ustawia ValidationRule obiekt, który był przyczyną tego ValidationErrorobiektu , jeśli błąd jest wynikiem reguły walidacji.

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy

Zobacz też