次の方法で共有


Binding.UpdateSourceExceptionFilter プロパティ

定義

バインディング ソース値の更新中にバインディング エンジンで発生する例外を処理するためのカスタム ロジックを提供するために使用できるハンドラーを取得または設定します。 これは、バインドに ExceptionValidationRule を関連付けられている場合にのみ適用されます。

public:
 property System::Windows::Data::UpdateSourceExceptionFilterCallback ^ UpdateSourceExceptionFilter { System::Windows::Data::UpdateSourceExceptionFilterCallback ^ get(); void set(System::Windows::Data::UpdateSourceExceptionFilterCallback ^ value); };
public System.Windows.Data.UpdateSourceExceptionFilterCallback UpdateSourceExceptionFilter { get; set; }
member this.UpdateSourceExceptionFilter : System.Windows.Data.UpdateSourceExceptionFilterCallback with get, set
Public Property UpdateSourceExceptionFilter As UpdateSourceExceptionFilterCallback

プロパティ値

バインディング ソース値の更新中にバインディング エンジンで発生する例外を処理するためのカスタム ロジックを提供するメソッド。

次のTextBoxText プロパティは、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.";
}

UpdateSourceExceptionFilterCallbackは、null、例外自体、またはValidationErrorを返すこともできます。 詳細については、UpdateSourceExceptionFilterCallbackを参照してください。

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

注釈

ExceptionValidationRuleは、バインディング ソース プロパティの更新中にスローされた例外をチェックする組み込みの検証規則です。 ExceptionValidationRuleBinding オブジェクトに関連付けた場合は、このプロパティを使用して、これらの例外を処理するためのカスタム ロジックを提供するハンドラーを設定できます。 UpdateSourceExceptionFilterBindingで指定されていない場合、バインド エンジンは例外を含むValidationErrorを作成し、バインドされた要素のValidation.Errors コレクションに追加します。

適用対象