Udostępnij za pośrednictwem


UpdateSourceExceptionFilterCallback Delegat

Definicja

Reprezentuje metodę, która obsługuje wyjątki zgłaszane podczas aktualizacji wartości źródłowej powiązania. Musi być używany z elementem 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.

exception
Exception

Napotkano wyjątek.

Wartość zwracana

Obiekt, który jest zazwyczaj jednym z następujących elementów:

Wartość Opis
null Aby zignorować wszystkie wyjątki. Zachowaniem domyślnym (jeśli nie UpdateSourceExceptionFilterCallbackma ) jest utworzenie elementu ValidationError z wyjątkiem i dodanie go do Errors kolekcji powiązanego elementu.
Dowolny obiekt Aby utworzyć ValidationError obiekt z ustawionym ErrorContent na ten obiekt.

Obiekt ValidationError jest dodawany do Errors kolekcji powiązanego elementu.

ValidationError Obiekt Aby ustawić BindingExpression obiekt or MultiBindingExpression jako BindingInError. Obiekt ValidationError jest dodawany do Errors kolekcji powiązanego elementu.

Przykłady

Właściwość Text poniższej TextBox właściwości to dane powiązane z właściwością Age3 źródłową typu int. Sprawdza ExceptionValidationRule wyjątki, które są zgłaszane podczas aktualizacji właściwości źródłowej (na przykład gdy użytkownik wprowadza wartość, której nie można przekonwertować na liczbę całkowitą).

<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. W poniższym przykładzie pokazano, jak za pomocą UpdateSourceExceptionFilter właściwości ustawić element UpdateSourceExceptionFilterCallback:


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

Poniżej przedstawiono przykładową implementację elementu UpdateSourceExceptionFilterCallback:

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

Aby zapoznać się z kompletnym przykładem, zobacz Przykład weryfikacji powiązań.

Uwagi

Jeśli skojarzono ExceptionValidationRule obiekt z Binding obiektem, możesz użyć UpdateSourceExceptionFilter właściwości , aby ustawić to wywołanie zwrotne w celu zapewnienia niestandardowej logiki obsługi wyjątków. To wywołanie zwrotne jest wywoływane za każdym razem, gdy wystąpi wyjątek, gdy aparat powiązania aktualizuje wartość źródła powiązania.

Jeśli element UpdateSourceExceptionFilter nie został określony w elemecie Binding, aparat powiązania tworzy ValidationError obiekt z wyjątkiem i dodaje go do Validation.Errors kolekcji powiązanego elementu.

Metody rozszerzania

GetMethodInfo(Delegate)

Pobiera obiekt reprezentujący metodę reprezentowaną przez określonego delegata.

Dotyczy

Zobacz też