Freigeben über


UpdateSourceExceptionFilterCallback Delegat

Definition

Stellt die Methode dar, die Ausnahmen behandelt, die während der Aktualisierung des Bindungsquellwerts ausgelöst werden. Dies muss mit der 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 

Parameter

bindExpression
Object

Das Objekt mit ausnahme.

exception
Exception

Die Ausnahme ist aufgetreten.

Rückgabewert

Ein Objekt, das in der Regel eine der folgenden Objekte ist:

Wert: Beschreibung
null Um Ausnahmen zu ignorieren. Das Standardverhalten (wenn kein UpdateSourceExceptionFilterCallback) besteht darin, eine ValidationError Ausnahme zu erstellen und der Errors Auflistung des gebundenen Elements hinzu.
Jedes Objekt So erstellen Sie ein ValidationError Objekt mit dem ErrorContent Satz auf dieses Objekt.

Das ValidationError Objekt wird der Errors Auflistung des gebundenen Elements hinzugefügt.

Ein ValidationError Objekt So legen Sie das BindingExpression Objekt MultiBindingExpression als das BindingInError. Das ValidationError Objekt wird der Errors Auflistung des gebundenen Elements hinzugefügt.

Beispiele

Die Text Eigenschaft der folgenden TextBox Ist-Daten an eine Quelleigenschaft Age3 gebunden, die vom Typ intist. 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 für die Behandlung dieser Ausnahmen bereitzustellen. Das folgende Beispiel zeigt, wie Sie die UpdateSourceExceptionFilter Eigenschaft zum Festlegen einer UpdateSourceExceptionFilterCallback:


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

Es folgt eine Beispielimplementierung einer UpdateSourceExceptionFilterCallback:

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

Das vollständige Beispiel finden Sie unter Binding Validation Sample.

Hinweise

Wenn Sie das ExceptionValidationRule Objekt zugeordnet Binding haben, haben Sie die Möglichkeit, diese UpdateSourceExceptionFilter Eigenschaft zum Festlegen dieses Rückrufs zu verwenden, um benutzerdefinierte Logik für die Behandlung der Ausnahmen bereitzustellen. Dieser Rückruf wird immer aufgerufen, wenn eine Ausnahme auftritt, wenn das Bindungsmodul den Bindungsquellwert aktualisiert.

Wenn für UpdateSourceExceptionFilter das BindingBindungsmodul kein Wert angegeben ist, erstellt das Bindungsmodul eine ValidationError Ausnahme und fügt es der Validation.Errors Auflistung des gebundenen Elements hinzu.

Erweiterungsmethoden

Name Beschreibung
GetMethodInfo(Delegate)

Ruft ein Objekt ab, das die vom angegebenen Delegaten dargestellte Methode darstellt.

Gilt für:

Weitere Informationen