UpdateSourceExceptionFilterCallback Delegat
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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. |