UpdateSourceExceptionFilterCallback Delegado
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa el método que controla las excepciones que se inician durante la actualización del valor del origen de enlace. Debe usarse con la 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 omitir cualquier excepción. El comportamiento predeterminado (si no hay UpdateSourceExceptionFilterCallback) es crear ValidationError con la excepción y agregarlo a la colección Errors del elemento enlazado. |
Cualquier objeto. | Para crear un objeto ValidationError con ErrorContent establecido en ese objeto.
El objeto ValidationError se agrega a la colección Errors del elemento enlazado. |
Objeto ValidationError | Para establecer el objeto BindingExpression o MultiBindingExpression como BindingInError. El objeto ValidationError se agrega a la colección Errors 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 el ExceptionValidationRule objeto con Binding el 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 encuentra cualquier excepción cuando el motor de enlace actualiza el valor de origen del enlace.
Si no se especifica UpdateSourceExceptionFilter en Binding, el motor de enlace crea ValidationError con la excepción y lo agrega a la colección Validation.Errors del elemento enlazado.
Métodos de extensión
GetMethodInfo(Delegate) |
Obtiene un objeto que representa el método representado por el delegado especificado. |