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 ValidationRule は、のいずれかがエラーになるまで、またはすべてのが成功するまで、各のメソッドを呼び出します。

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

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

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

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

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

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

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

識別子フィールド ErrorEvent
ルーティング方法 バブリング
代理人 EventHandler<TEventArgs>、制約あり ValidationErrorEventArgs

適用対象