UpdateSourceExceptionFilterCallback 委托

定义

表示处理绑定源值更新过程中引发的异常的方法。 它必须与 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 对象BindingExpressionMultiBindingExpression 对象设置为 BindingInError。 将 ValidationError 对象添加到绑定元素的 Errors 集合中。

示例

下面的 TextTextBox 属性的数据绑定到类型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.";
}

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

注解

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

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

扩展方法

GetMethodInfo(Delegate)

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

适用于

另请参阅