Language

Validation.Error 添付イベント

定義

バインドされた要素が検証エラーになったが、 NotifyOnValidationError 値が trueに設定されたバインディングに対してのみ発生します。

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

注釈

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

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

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

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

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

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

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

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

ルーティング イベント情報

品目 価値
識別子フィールド ErrorEvent
ルーティング戦略 バブル
代理人 EventHandler<TEventArgs>、制約あり ValidationErrorEventArgs

適用対象