UpdateSourceExceptionFilterCallback 委托

定义

表示处理绑定源值更新过程中引发的异常的方法。 它必须与 ExceptionValidationRule 一起使用。

C#
public delegate object UpdateSourceExceptionFilterCallback(object bindExpression, Exception exception);

参数

bindExpression
Object

出现异常的对象。

exception
Exception

遇到的异常。

返回值

通常为下列某项的对象:

“值” 描述
null 忽略任何异常。 默认行为(如果没有 UpdateSourceExceptionFilterCallback)是对异常创建 ValidationError 并将其添加到绑定元素的 Errors 集合。
任何对象 创建 ValidationError 对象,并将 ErrorContent 设置为此对象。

ValidationError 对象添加到绑定元素的 Errors 集合中。

一个 ValidationError 对象BindingExpressionMultiBindingExpression 对象设置为 BindingInError。 将 ValidationError 对象添加到绑定元素的 Errors 集合中。

示例

下面的 TextTextBox 属性的数据绑定到类型int为 的源属性Age3。 检查 ExceptionValidationRule 在更新源属性期间引发的异常 (,例如当用户输入无法转换为整数) 的值时。

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

C#

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

下面是 的示例实现 UpdateSourceExceptionFilterCallback

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

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

注解

如果已将 关联 ExceptionValidationRuleBinding 对象,则可以选择使用 UpdateSourceExceptionFilter 属性设置此回调,以提供用于处理异常的自定义逻辑。 每当绑定引擎更新绑定源值时遇到任何异常时,将调用此回调。

如果未在 Binding 上指定 UpdateSourceExceptionFilter,则绑定引擎会创建具有异常的 ValidationError 并将其添加到绑定元素的 Validation.Errors 集合中。

扩展方法

GetMethodInfo(Delegate)

获取指示指定委托表示的方法的对象。

适用于

产品 版本
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

另请参阅