UpdateSourceExceptionFilterCallback Delegat
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt die Methode dar, die Ausnahmen behandelt, die während der Aktualisierung des Bindungsquellwerts ausgelöst werden. Diese muss mit der ExceptionValidationRule verwendet werden.
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
Parameter
- bindExpression
- Object
Das Objekt mit der Ausnahme.
- exception
- Exception
Die aufgetretene Ausnahme.
Rückgabewert
Ein Objekt, bei dem es sich in der Regel um Folgendes handelt:
Wert | Beschreibung |
---|---|
null | Zum Ignorieren von Ausnahmen. Das Standardverhalten (wenn kein UpdateSourceExceptionFilterCallback vorhanden ist) besteht darin, dass ein ValidationError mit der Ausnahme erstellt und der Errors-Auflistung des gebundenen Elements hinzugefügt wird. |
Ein beliebiges Objekt | Zum Erstellen eines ValidationError-Objekts, wobei der ErrorContent auf dieses Objekt festgelegt ist.
Das ValidationError-Objekt wird der Errors-Auflistung des gebundenen Elements hinzugefügt. |
Ein ValidationError-Objekt. | Zum Festlegen des BindingExpression-Objekts oder MultiBindingExpression-Objekts als BindingInError. Das ValidationError-Objekt wird der Errors-Auflistung des gebundenen Elements hinzugefügt. |
Beispiele
Die Text Eigenschaft des folgenden TextBox ist datengebunden an eine Quelleigenschaft Age3
vom Typ int
. Die ExceptionValidationRule Überprüfung auf Ausnahmen, die während der Aktualisierung der Quelleigenschaft ausgelöst werden (z. B. wenn der Benutzer einen Wert eingibt, der nicht in eine ganze Zahl konvertiert werden kann).
<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>
Sie haben die Möglichkeit, benutzerdefinierte Logik bereitzustellen, um diese Ausnahmen zu behandeln. Das folgende Beispiel zeigt, wie Sie die UpdateSourceExceptionFilter -Eigenschaft verwenden, um einen UpdateSourceExceptionFilterCallbackfestzulegen:
BindingExpression myBindingExpression = textBox3.GetBindingExpression(TextBox.TextProperty);
Binding myBinding = myBindingExpression.ParentBinding;
myBinding.UpdateSourceExceptionFilter = new UpdateSourceExceptionFilterCallback(ReturnExceptionHandler);
myBindingExpression.UpdateSource();
Es folgt eine Beispielimplementierung eines UpdateSourceExceptionFilterCallback:
object ReturnExceptionHandler(object bindingExpression, Exception exception)
{
return "This is from the UpdateSourceExceptionFilterCallBack.";
}
Das vollständige Beispiel finden Sie unter Beispiel für die Bindungsüberprüfung.
Hinweise
Wenn Sie dem -Objekt zugeordnet ExceptionValidationRuleBinding haben, haben Sie die Möglichkeit, die UpdateSourceExceptionFilter -Eigenschaft zu verwenden, um diesen Rückruf so festzulegen, dass benutzerdefinierte Logik für die Behandlung der Ausnahmen bereitgestellt wird. Dieser Rückruf wird immer dann aufgerufen, wenn eine Ausnahme auftritt, wenn das Bindungsmodul den Bindungsquellwert aktualisiert.
Wenn kein UpdateSourceExceptionFilter für die Binding angegeben ist, erstellt die Bindungs-Engine einen ValidationError mit der Ausnahme und fügt ihn der Validation.Errors-Auflistung des gebundenen Elements hinzu.
Erweiterungsmethoden
GetMethodInfo(Delegate) |
Ruft ein Objekt ab, das die Methode darstellt, die vom angegebenen Delegaten dargestellt wird. |