UpdateSourceExceptionFilterCallback 代理人

定義

バインディング ソースの値の更新中にスローされる例外をハンドルするメソッドを表します。Represents the method that handles exceptions that are thrown during the update of the binding source value. これは ExceptionValidationRule と一緒に使用する必要があります。This must be used with the 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

例外を発生させたオブジェクト。The object with the exception.

exception
Exception

発生した例外。The exception encountered.

戻り値

Object

通常、次のいずれかのオブジェクト:An object that is typically one of the following:

Value 説明Description
null すべての例外を無視する場合。To ignore any exceptions. 既定の動作では (UpdateSourceExceptionFilterCallback がない場合)、例外を使用して ValidationError を作成し、バインドされている要素の Errors コレクションにこれを追加します。The default behavior (if there is no UpdateSourceExceptionFilterCallback) is to create a ValidationError with the exception and adds it to the Errors collection of the bound element.
任意のオブジェクトAny object ValidationError が設定された ErrorContent オブジェクトを作成する場合。To create a ValidationError object with the ErrorContent set to that object. ValidationError オブジェクトは、バインドされている要素の Errors コレクションに追加されます。The ValidationError object is added to Errors collection of the bound element.
ValidationError オブジェクトA ValidationError object BindingExpression オブジェクトまたは MultiBindingExpression オブジェクトを BindingInError として設定する場合。To set the BindingExpression or MultiBindingExpression object as the BindingInError. ValidationError オブジェクトは、バインドされている要素の Errors コレクションに追加されます。The ValidationError object is added to Errors collection of the bound element.
継承
UpdateSourceExceptionFilterCallback

次の TextBoxText プロパティは int型のソースプロパティ Age3 にデータバインドされています。The Text property of the following TextBox is data-bound to a source property Age3 that is of type int. ExceptionValidationRule は、ソースプロパティの更新中にスローされた例外を確認します (ユーザーが整数に変換できない値を入力した場合など)。The ExceptionValidationRule checks for exceptions that are thrown during the update of the source property (such as when the user enters a value that cannot be converted to an integer).

<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>

これらの例外を処理するためのカスタムロジックを提供するオプションがあります。You have the option to provide custom logic to handle those exceptions. 次の例では、UpdateSourceExceptionFilter プロパティを使用して UpdateSourceExceptionFilterCallbackを設定する方法を示します。The following example shows how to use the UpdateSourceExceptionFilter property to set an UpdateSourceExceptionFilterCallback:


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

UpdateSourceExceptionFilterCallbackの実装例を次に示します。The following is an example implementation of an UpdateSourceExceptionFilterCallback:

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

完全なサンプルについては、「バインディングの検証のサンプル」を参照してください。For the complete sample, see Binding Validation Sample.

注釈

ExceptionValidationRuleBinding オブジェクトに関連付けた場合は、UpdateSourceExceptionFilter プロパティを使用して、例外を処理するためのカスタムロジックを提供するように、このコールバックを設定するオプションがあります。If you have associated the ExceptionValidationRule with your Binding object you have the option to use the UpdateSourceExceptionFilter property to set this callback to provide custom logic for handling the exceptions. このコールバックは、バインディングエンジンがバインディングソースの値を更新したときに例外が発生するたびに呼び出されます。This callback is invoked whenever any exception is encountered when the binding engine updates the binding source value.

BindingUpdateSourceExceptionFilter が指定されていない場合、バインディングエンジンは例外を使用して ValidationError を作成し、バインドされた要素の Validation.Errors コレクションに追加します。If an UpdateSourceExceptionFilter is not specified on the Binding, the binding engine creates a ValidationError with the exception and adds it to the Validation.Errors collection of the bound element.

拡張メソッド

GetMethodInfo(Delegate)

指定したデリゲートによって表されるメソッドを表すオブジェクトを取得します。Gets an object that represents the method represented by the specified delegate.

適用対象

こちらもご覧ください