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ą na NotifyOnValidationErrortrue.

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 do powiązania 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 metodę Validate na każdym z ValidationRulenich, dopóki jeden z nich nie wystąpi błąd lub do momentu przekazania wszystkich z nich.

  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, a wyjątek jest zgłaszany w kroku 4, aparat powiązania sprawdza, czy istnieje UpdateSourceExceptionFilter. Istnieje możliwość użycia wywołania zwrotnego w celu zapewnienia niestandardowej UpdateSourceExceptionFilter procedury 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.

Należy również pamiętać, że prawidłowy transfer wartości w kierunku (element docelowy do źródła lub źródło-cel) czyści Validationobiekt .Errorsdołączona właściwość.

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

Informacje dotyczące kierowanego zdarzenia

Pole identyfikatora ErrorEvent
Strategia routingu Propagacji
Delegat EventHandler<TEventArgs>, ograniczone przez ValidationErrorEventArgs

Dotyczy