Validation.Error 添付イベント

定義

バインドされている要素で検証エラーが検出されると発生します。ただし、NotifyOnValidationError 値が true に設定されているバインドのみが対象になります。

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

注釈

WPF データ バインディング モデルを使用すると、オブジェクトに関連付けることができますValidationRulesBinding。 検証は、コンバーターが呼び出される前に、バインディングのターゲットからバインドへのソース値の転送中に発生します。 検証プロセスを次に示します。

  1. ターゲット プロパティからソース プロパティに値を転送する場合、データ バインディング エンジンは、バインドされた要素の添付プロパティにValidation.Errors追加された可能性がある値ValidationErrorを最初に削除します。 次に、その Bindingに対してカスタム s が定義されているかどうかをValidationRule確認します。その場合、いずれかのメソッドがエラーになるまで、またはすべてが渡されるまで、 の各 ValidationRuleで メソッドを呼び出Validateします。

  2. 渡されないカスタム規則があると、バインド エンジンによってオブジェクトが作成 ValidationError され、バインドされた要素のコレクションに Validation.Errors 追加されます。 Validation.Errors が空でない場合、要素の Validation.HasError 添付プロパティは true に設定されます。 また、BindingNotifyOnValidationError プロパティが true に設定されている場合は、バインディング エンジンによって、要素で Validation.Error 添付イベントが発生します。

  3. すべての規則が渡された場合、バインディング エンジンはコンバーター (存在する場合) を呼び出します。

  4. コンバーターが渡された場合、バインディング エンジンはソース プロパティのセッターを呼び出します。

  5. バインドに 関連付けられている が含 ExceptionValidationRule まれており、手順 4 で例外がスローされた場合、バインディング エンジンは UpdateSourceExceptionFilterが存在するかどうかを確認します。 UpdateSourceExceptionFilter コールバックを使用して、例外を処理するためのカスタム ハンドラーを提供するオプションがあります。 BindingUpdateSourceExceptionFilter が指定されていない場合、バインディング エンジンは例外を使用して ValidationError を作成し、バインドされた要素の Validation.Errors コレクションに追加します。

また、(ターゲットからソースまたはソースからターゲットへの) どちらの方向でも有効な値の転送によって、 が Validationクリアされることに注意してください。Errors添付プロパティ。

詳細については、「データ バインディングの概要」の「 データの検証」を参照してください。

ルーティングされたイベント情報

識別子フィールド ErrorEvent
ルーティング戦略 バブル
代理人 EventHandler<TEventArgs>によって制約されます。 ValidationErrorEventArgs

適用対象