UpdateSourceExceptionFilterCallback Délégué
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Représente la méthode qui gère les exceptions levées pendant la mise à jour de la valeur source de liaison. Ceci doit être utilisé avec 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
Paramètres
- bindExpression
- Object
Objet avec l’exception.
- exception
- Exception
Exception rencontrée.
Valeur renvoyée
Objet qui est généralement un des suivants :
Value | Description |
---|---|
null | Pour ignorer toutes les exceptions. Le comportement par défaut (en cas d'absence de UpdateSourceExceptionFilterCallback) consiste à créer une ValidationError avec l'exception pour l'ajouter à la collection de Errors de l'élément lié. |
Tout objet | Pour créer un objet ValidationError avec ErrorContent défini pour cet objet.
L'objet ValidationError est ajouté à la collection de Errors de l'élément lié. |
Objet ValidationError | Pour définir l'objet BindingExpression ou MultiBindingExpression en tant que BindingInError. L'objet ValidationError est ajouté à la collection de Errors de l'élément lié. |
Exemples
La Text propriété suivante TextBox est liée aux données à une propriété Age3
source de type int
. Vérifie ExceptionValidationRule les exceptions levées lors de la mise à jour de la propriété source (par exemple, lorsque l’utilisateur entre une valeur qui ne peut pas être convertie en entier).
<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>
Vous avez la possibilité de fournir une logique personnalisée pour gérer ces exceptions. L’exemple suivant montre comment utiliser la UpdateSourceExceptionFilter propriété pour définir un UpdateSourceExceptionFilterCallback:
BindingExpression myBindingExpression = textBox3.GetBindingExpression(TextBox.TextProperty);
Binding myBinding = myBindingExpression.ParentBinding;
myBinding.UpdateSourceExceptionFilter = new UpdateSourceExceptionFilterCallback(ReturnExceptionHandler);
myBindingExpression.UpdateSource();
Voici un exemple d’implémentation d’un UpdateSourceExceptionFilterCallback:
object ReturnExceptionHandler(object bindingExpression, Exception exception)
{
return "This is from the UpdateSourceExceptionFilterCallBack.";
}
Pour obtenir l’exemple complet, consultez l’exemple de validation de liaison.
Remarques
Si vous avez associé l’objet ExceptionValidationRule Binding , vous avez la possibilité d’utiliser la UpdateSourceExceptionFilter propriété pour définir ce rappel afin de fournir une logique personnalisée pour gérer les exceptions. Ce rappel est appelé chaque fois qu’une exception est rencontrée lorsque le moteur de liaison met à jour la valeur de la source de liaison.
Si un UpdateSourceExceptionFilter n’est pas spécifié sur le Binding, le moteur de liaison crée une ValidationError exception et l’ajoute à la Validation.Errors collection de l’élément lié.
Méthodes d’extension
GetMethodInfo(Delegate) |
Obtient un objet qui représente la méthode représentée par le délégué spécifié. |