Validation.Error Zdarzenie dołączone

Definicja

Występuje, gdy element powiązany przechodzi do błędu walidacji, ale tylko w przypadku powiązań z wartością ustawioną NotifyOnValidationError na true.

see AddErrorHandler, and RemoveErrorHandler
see AddErrorHandler, and RemoveErrorHandler
see AddErrorHandler, and RemoveErrorHandler

Uwagi

Model powiązania danych WPF umożliwia skojarzenie ValidationRules z obiektem Binding . Walidacja odbywa się podczas wiązania transferu wartości źródłowej z powiązaniem przed wywołaniem 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 istnieją jakiekolwiek niestandardowe ValidationRuledefinicje dla tego Bindingelementu , w takim przypadku wywołuje Validate metodę na każdej z ValidationRulenich, dopóki jeden z nich nie wystąpi błąd lub dopóki 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. Jeśli Validation.Errors właściwość nie jest pusta Validation.HasError , dołączona właściwość elementu jest ustawiona na truewartość . Ponadto jeśli właściwość NotifyOnValidationError obiektu Binding jest ustawiona na true, silnik wiązania zgłasza zdarzenie powiązane Validation.Error na elemencie.

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

  4. Jeśli konwerter przejdzie pomyślnie, aparat powiązania wywołuje metodę ustawiającą właściwości źródłowej.

  5. Jeśli powiązanie jest ExceptionValidationRule skojarzone z nim, a wyjątek jest zgłaszany w kroku 4, aparat powiązania sprawdza, czy istnieje UpdateSourceExceptionFilterelement . Istnieje możliwość użycia wywołania zwrotnego UpdateSourceExceptionFilter w celu zapewnienia niestandardowej procedury obsługi wyjątków. Jeśli parametr UpdateSourceExceptionFilter nie został określony w elemecie Binding, aparat powiązania tworzy ValidationError obiekt z wyjątkiem i dodaje go do Validation.Errors kolekcji elementu powiązanego.

Należy również zauważyć, że prawidłowy transfer wartości w obu kierunkach (target-to-source lub source-to-target) czyści Validationwłaściwość .Errors dołączone.

Aby uzyskać więcej informacji, zobacz "Weryfikacja danych" w temacie Omówienie powiązania danych.

Informacje o zdarzeniach kierowanych

Przedmiot Wartość
Pole identyfikatora ErrorEvent
Strategia routingu Propagacji
Delegat EventHandler<TEventArgs>, ograniczone przez ValidationErrorEventArgs

Dotyczy