UpdateSourceExceptionFilterCallback 代理人
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
バインディング ソースの値の更新中にスローされる例外をハンドルするメソッドを表します。 これは 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
発生した例外。
戻り値
通常、次のいずれかのオブジェクト:
[値] | 説明 |
---|---|
null | すべての例外を無視する場合。 既定の動作では (UpdateSourceExceptionFilterCallback がない場合)、例外を使用して ValidationError を作成し、バインドされている要素の Errors コレクションにこれを追加します。 |
任意のオブジェクト | ValidationError が設定された ErrorContent オブジェクトを作成する場合。
ValidationError オブジェクトは、バインドされている要素の Errors コレクションに追加されます。 |
ValidationError オブジェクト | BindingExpression オブジェクトまたは MultiBindingExpression オブジェクトを BindingInError として設定する場合。 ValidationError オブジェクトは、バインドされている要素の Errors コレクションに追加されます。 |
例
Text次TextBoxのプロパティは、型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 してこのコールバックを設定し、例外を処理するためのカスタム ロジックを提供するオプションがあります。 このコールバックは、バインディング エンジンがバインディング ソース値を更新するときに例外が発生するたびに呼び出されます。
Binding で UpdateSourceExceptionFilter が指定されていない場合、バインディング エンジンは例外を使用して ValidationError を作成し、バインドされた要素の Validation.Errors コレクションに追加します。
拡張メソッド
GetMethodInfo(Delegate) |
指定したデリゲートによって表されるメソッドを表すオブジェクトを取得します。 |