Compartir por


UpdateSourceExceptionFilterCallback Delegado

Definición

Representa el método que controla las excepciones que se producen durante la actualización del valor de origen de enlace. Debe usarse con .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 

Parámetros

bindExpression
Object

Objeto con la excepción.

exception
Exception

Excepción encontrada.

Valor devuelto

Objeto que suele ser uno de los siguientes:

Valor Descripción
null Para pasar por alto las excepciones. El comportamiento predeterminado (si no hay ninguna UpdateSourceExceptionFilterCallback) es crear un ValidationError con la excepción y agregarlo a la Errors colección del elemento enlazado.
Cualquier objeto Para crear un ValidationError objeto con el ErrorContent establecido en ese objeto.

El ValidationError objeto se agrega a la Errors colección del elemento enlazado.

Un ValidationError objeto Para establecer el BindingExpression objeto o MultiBindingExpression como .BindingInError El ValidationError objeto se agrega a la Errors colección del elemento enlazado.

Ejemplos

La Text propiedad de lo siguiente TextBox está enlazada a datos a una propiedad Age3 de origen que es de tipo int. Comprueba ExceptionValidationRule si hay excepciones que se producen durante la actualización de la propiedad de origen (por ejemplo, cuando el usuario escribe un valor que no se puede convertir en un entero).

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

Tiene la opción de proporcionar lógica personalizada para controlar esas excepciones. En el ejemplo siguiente se muestra cómo usar la UpdateSourceExceptionFilter propiedad para establecer un UpdateSourceExceptionFilterCallback:


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

A continuación se muestra una implementación de ejemplo de :UpdateSourceExceptionFilterCallback

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

Para obtener el ejemplo completo, consulte Ejemplo de validación de enlaces.

Comentarios

Si ha asociado con el ExceptionValidationRuleBinding objeto, tiene la opción de usar la UpdateSourceExceptionFilter propiedad para establecer esta devolución de llamada para proporcionar lógica personalizada para controlar las excepciones. Esta devolución de llamada se invoca siempre que se encuentre alguna excepción cuando el motor de enlace actualiza el valor de origen del enlace.

Si no se especifica en UpdateSourceExceptionFilterBinding, el motor de enlace crea un ValidationError con la excepción y lo agrega a la Validation.Errors colección del elemento enlazado.

Métodos de extensión

Nombre Description
GetMethodInfo(Delegate)

Obtiene un objeto que representa el método representado por el delegado especificado.

Se aplica a

Consulte también