Partager via


UpdateSourceExceptionFilterCallback Délégué

Définition

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

Object

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

S’applique à

Voir aussi