UpdateSourceExceptionFilterCallback Delegat

Definition

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.

Gilt für:

Weitere Informationen