次の方法で共有


UpdateSourceExceptionFilterCallback 代理人

定義

バインディング ソースの値の更新中にスローされる例外をハンドルするメソッドを表します。 これは ExceptionValidationRule と一緒に使用する必要があります。

public delegate System::Object ^ UpdateSourceExceptionFilterCallback(System::Object ^ bindExpression, Exception ^ exception);
public delegate object UpdateSourceExceptionFilterCallback(object bindExpression, Exception exception);
type UpdateSourceExceptionFilterCallback = delegate of obj * Exception -> obj
Public Delegate Function UpdateSourceExceptionFilterCallback(bindExpression As Object, exception As Exception) As Object 

パラメーター

bindExpression
Object

例外を発生させたオブジェクト。

exception
Exception

発生した例外。

戻り値

Object

通常、次のいずれかのオブジェクト:

[値] 説明
null すべての例外を無視する場合。 既定の動作では (UpdateSourceExceptionFilterCallback がない場合)、例外を使用して ValidationError を作成し、バインドされている要素の Errors コレクションにこれを追加します。
任意のオブジェクト ValidationError が設定された ErrorContent オブジェクトを作成する場合。

ValidationError オブジェクトは、バインドされている要素の Errors コレクションに追加されます。

ValidationError オブジェクト BindingExpression オブジェクトまたは MultiBindingExpression オブジェクトを BindingInError として設定する場合。 ValidationError オブジェクトは、バインドされている要素の Errors コレクションに追加されます。

TextTextBoxのプロパティは、型intのソース プロパティAge3にデータバインドされます。 ExceptionValidationRuleソース プロパティの更新中にスローされる例外のチェック (ユーザーが整数に変換できない値を入力した場合など)。

<TextBox Name="textBox3" Width="50" FontSize="15"
         Grid.Row="4" Grid.Column="1" Margin="2"
         Validation.ErrorTemplate="{StaticResource validationTemplate}"
         Style="{StaticResource textBoxInError}">
  <TextBox.Text>
    <Binding Path="Age3" Source="{StaticResource ods}"
             UpdateSourceTrigger="PropertyChanged">
      <Binding.ValidationRules>
        <ExceptionValidationRule/>
      </Binding.ValidationRules>
    </Binding>
  </TextBox.Text>
</TextBox>

これらの例外を処理するカスタム ロジックを提供するオプションがあります。 次の例は、プロパティを使用して次の UpdateSourceExceptionFilter 値を設定する方法を UpdateSourceExceptionFilterCallback示しています。


BindingExpression myBindingExpression = textBox3.GetBindingExpression(TextBox.TextProperty);
Binding myBinding = myBindingExpression.ParentBinding;
myBinding.UpdateSourceExceptionFilter = new UpdateSourceExceptionFilterCallback(ReturnExceptionHandler);
myBindingExpression.UpdateSource();

次に、次の実装例を UpdateSourceExceptionFilterCallback示します。

object ReturnExceptionHandler(object bindingExpression, Exception exception)
{
    return "This is from the UpdateSourceExceptionFilterCallBack.";
}

完全なサンプルについては、「 バインディング検証のサンプル」を参照してください。

注釈

オブジェクトに ExceptionValidationRule 関連付 Binding けられている場合は、このプロパティを使用 UpdateSourceExceptionFilter してこのコールバックを設定し、例外を処理するためのカスタム ロジックを提供するオプションがあります。 このコールバックは、バインディング エンジンがバインディング ソース値を更新するときに例外が発生するたびに呼び出されます。

BindingUpdateSourceExceptionFilter が指定されていない場合、バインディング エンジンは例外を使用して ValidationError を作成し、バインドされた要素の Validation.Errors コレクションに追加します。

拡張メソッド

GetMethodInfo(Delegate)

指定したデリゲートによって表されるメソッドを表すオブジェクトを取得します。

適用対象

こちらもご覧ください