UpdateSourceExceptionFilterCallback Delegat

Definicja

Reprezentuje metodę, która obsługuje wyjątki, które są generowane podczas aktualizacji wartości źródłowej powiązania.Represents the method that handles exceptions that are thrown during the update of the binding source value. Ta wartość musi być używana z ExceptionValidationRule .This must be used with the 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 

Parametry

bindExpression
Object

Obiekt z wyjątkiem.The object with the exception.

exception
Exception

Napotkano wyjątek.The exception encountered.

Wartość zwracana

Object

Obiekt, który jest zazwyczaj jednym z następujących:An object that is typically one of the following:

WartośćValue OpisDescription
null Ignorowanie wyjątków.To ignore any exceptions. Zachowanie domyślne (jeśli nie istnieje UpdateSourceExceptionFilterCallback ) polega na utworzeniu ValidationError wyjątku z wyjątkiem i dodaniem go do Errors kolekcji powiązanego elementu.The default behavior (if there is no UpdateSourceExceptionFilterCallback) is to create a ValidationError with the exception and adds it to the Errors collection of the bound element.
Dowolny obiektAny object Aby utworzyć ValidationError obiekt z ErrorContent zestawem dla tego obiektu.To create a ValidationError object with the ErrorContent set to that object.

ValidationErrorObiekt jest dodawany do Errors kolekcji powiązanego elementu.The ValidationError object is added to Errors collection of the bound element.

ValidationErrorObiektA ValidationError object Aby ustawić BindingExpression obiekt lub MultiBindingExpression jako BindingInError .To set the BindingExpression or MultiBindingExpression object as the BindingInError. ValidationErrorObiekt jest dodawany do Errors kolekcji powiązanego elementu.The ValidationError object is added to Errors collection of the bound element.

Przykłady

TextWłaściwość poniżej TextBox ma powiązane dane z właściwością źródłową Age3 typu int .The Text property of the following TextBox is data-bound to a source property Age3 that is of type int. ExceptionValidationRuleSprawdza wyjątki, które są zgłaszane podczas aktualizacji właściwości źródłowej (na przykład gdy użytkownik wprowadzi wartość, której nie można przekonwertować na liczbę całkowitą).The ExceptionValidationRule checks for exceptions that are thrown during the update of the source property (such as when the user enters a value that cannot be converted to an integer).

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

Istnieje możliwość zapewnienia logiki niestandardowej do obsługi tych wyjątków.You have the option to provide custom logic to handle those exceptions. Poniższy przykład pokazuje, jak użyć właściwości, UpdateSourceExceptionFilter Aby ustawić UpdateSourceExceptionFilterCallback :The following example shows how to use the UpdateSourceExceptionFilter property to set an UpdateSourceExceptionFilterCallback:


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

Poniżej przedstawiono przykładową implementację UpdateSourceExceptionFilterCallback :The following is an example implementation of an UpdateSourceExceptionFilterCallback:

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

Aby zapoznać się z kompletnym przykładem, zobacz przykładowe sprawdzanie poprawności powiązań.For the complete sample, see Binding Validation Sample.

Uwagi

Jeśli masz skojarzeni ExceptionValidationRule z Binding obiektem, możesz użyć właściwości, aby UpdateSourceExceptionFilter ustawić to wywołanie zwrotne w celu zapewnienia logiki niestandardowej do obsługi wyjątków.If you have associated the ExceptionValidationRule with your Binding object you have the option to use the UpdateSourceExceptionFilter property to set this callback to provide custom logic for handling the exceptions. To wywołanie zwrotne jest wywoływane za każdym razem, gdy aparat powiązania aktualizuje wartość źródła powiązania.This callback is invoked whenever any exception is encountered when the binding engine updates the binding source value.

Jeśli element UpdateSourceExceptionFilter nie jest określony w Binding , aparat powiązań tworzy ValidationError wyjątek z wyjątkiem i dodaje go do Validation.Errors kolekcji powiązanego elementu.If an UpdateSourceExceptionFilter is not specified on the Binding, the binding engine creates a ValidationError with the exception and adds it to the Validation.Errors collection of the bound element.

Metody rozszerzania

GetMethodInfo(Delegate)

Pobiera obiekt, który reprezentuje metodę reprezentowaną przez określony delegat.Gets an object that represents the method represented by the specified delegate.

Dotyczy

Zobacz też