ValidateValueCallback Delegat

Definition

Stellt eine Methode dar, die als Rückruf verwendet wird, der den effektiven Wert einer Abhängigkeitseigenschaft überprüft.

public delegate bool ValidateValueCallback(System::Object ^ value);
public delegate bool ValidateValueCallback(object value);
type ValidateValueCallback = delegate of obj -> bool
Public Delegate Function ValidateValueCallback(value As Object) As Boolean 

Parameter

value
Object

Der zu überprüfende Wert.

Rückgabewert

Boolean

true, wenn der Wert überprüft wurde, false, wenn der übermittelte Wert ungültig war.

Beispiele

Das folgende Beispiel enthält eine Implementierung dieses Rückrufs, um einen Wertebereich für eine benutzerdefinierte Abhängigkeitseigenschaft zu überprüfen. In diesem Fall erwartet der Eigenschaftswert eine Enumeration, und die Überprüfung stellt sicher, dass der bereitgestellte Wert für ein Element dieser Enumeration ausgewertet wird.

private static bool ShirtValidateCallback(object value)
{
    ShirtTypes sh = (ShirtTypes) value;
    return (sh==ShirtTypes.None || sh == ShirtTypes.Bowling || sh == ShirtTypes.Dress || sh == ShirtTypes.Rugby || sh == ShirtTypes.Tee);
}
Private Shared Function ShirtValidateCallback(ByVal value As Object) As Boolean
    Dim sh As ShirtTypes = CType(value, ShirtTypes)
    Return (sh=ShirtTypes.None OrElse sh = ShirtTypes.Bowling OrElse sh = ShirtTypes.Dress OrElse sh = ShirtTypes.Rugby OrElse sh = ShirtTypes.Tee)

End Function

Hinweise

Rückrufe, die auf dieser Stellvertretung basieren, werden von bestimmten Signaturen DependencyProperty.Register und verwandten Methoden verwendet, z RegisterAttached . B. schreibgeschützte Entsprechungen. Sie sollten Signaturen verwenden, die den validateValueCallback Parameter verwenden, wenn Sie eine bestimmte Überprüfung des Eigenschaftswerts bei jedem Festlegen der wirksamen Eigenschaft wünschen. Anschließend sollten Sie diesen Rückruf implementieren, sodass er die tatsächliche Überprüfung des vorgeschlagenen Werts ausführt. Der Rückruf sollte zurückgegeben werden true , wenn der an den Rückruf übermittelte Wert gültig ist und false andernfalls. Ein false Wert erzeugt eine Ausnahme im spezifischen Teil des Eigenschaftssystems, in dem versucht wurde, dass der ungültige Eigenschaftssatz versucht wurde, daher sollte Ihre Anwendung darauf vorbereitet sein, diese Ausnahmen zu behandeln.

Überprüfungsrückrufe werden auf Abhängigkeitseigenschaftsbezeichnern und nicht auf Abhängigkeitseigenschaftsmetadaten gespeichert. Ihr Überprüfungsrückruf hat keinen Zugriff auf eine bestimmte Instanz einer DependencyObject Eigenschaft, auf die die Eigenschaft festgelegt ist, und kann nur beeinflussen, welche Werte für die Eigenschaft im Allgemeinen akzeptiert werden. Wenn Sie einen Rückruf benötigen, der Eigenschaftswerte basierend auf einer bestimmten Instanz ändern kann, sollten Sie eine Kombination aus einer CoerceValueCallback und PropertyChangedCallback Rückrufen verwenden, die auf die Eigenschaftenmetadaten Ihrer Eigenschaft angewendet werden. Sie können diese Rückrufe auch auf verwandte Eigenschaften anwenden, die den Wert Ihrer Eigenschaft beeinflussen sollten. Ausführliche Informationen finden Sie unter Dependency Property Callbacks and Validation.

Erweiterungsmethoden

GetMethodInfo(Delegate)

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

Gilt für:

Siehe auch