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

属性值

一个提供自定义逻辑以在绑定源值更新过程中处理绑定引擎遇到的异常的方法。

示例

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.";
}

UpdateSourceExceptionFilterCallback还可以返回 null、异常本身或 ValidationError。 有关详细信息,请参阅 UpdateSourceExceptionFilterCallback

有关完整示例,请参阅 绑定验证示例

注解

ExceptionValidationRule是一个内置验证规则,用于检查在更新绑定源属性期间引发的异常。 如果已将 与 Binding 对象关联ExceptionValidationRule,则可以使用此属性设置处理程序,以提供用于处理这些异常的自定义逻辑。 如果未在 Binding 上指定 UpdateSourceExceptionFilter,则绑定引擎会创建具有异常的 ValidationError 并将其添加到绑定元素的 Validation.Errors 集合中。

适用于