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 -> objPublic 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 集合中。 | 
示例
下面的 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.";
}
有关完整示例,请参阅 绑定验证示例。
注解
如果已将 关联 ExceptionValidationRule 到 Binding 对象,则可以选择使用 UpdateSourceExceptionFilter 属性设置此回调,以提供用于处理异常的自定义逻辑。 每当绑定引擎更新绑定源值时遇到任何异常时,将调用此回调。
如果未在 Binding 上指定 UpdateSourceExceptionFilter,则绑定引擎会创建具有异常的 ValidationError 并将其添加到绑定元素的 Validation.Errors 集合中。
扩展方法
| GetMethodInfo(Delegate) | 获取指示指定委托表示的方法的对象。 |