Condividi tramite


ValidateValueCallback Delegato

Definizione

Rappresenta un metodo utilizzato come callback che convalida il valore effettivo di una proprietà di dipendenza.

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 

Parametri

value
Object

Valore da convalidare.

Valore restituito

true se il valore è stato convalidato. false se il valore inviato non è valido.

Esempio

L'esempio seguente include un'implementazione di questo callback per convalidare un intervallo di valori per una proprietà di dipendenza personalizzata. In questo caso il valore della proprietà prevede un'enumerazione e la convalida garantisce che il valore fornito restituisca un membro dell'enumerazione.

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

Commenti

I callback basati su questo delegato vengono usati da determinate firme di DependencyProperty.Register metodi correlati, ad esempio RegisterAttached e equivalenti di sola lettura. È consigliabile usare firme che accettano il validateValueCallback parametro se si desidera una convalida specifica del valore della proprietà ogni volta che viene impostata l'effettiva. È quindi necessario implementare questo callback in modo che esegua la convalida effettiva del valore proposto. Il callback deve restituire true se il valore inviato al callback è valido e false in caso contrario. Un false valore genererà un'eccezione nella parte specifica del sistema di proprietà in cui è stato tentato il set di proprietà non valido, quindi l'applicazione deve essere preparata per gestire queste eccezioni.

I callback di convalida vengono archiviati in identificatori di proprietà di dipendenza, anziché metadati delle proprietà di dipendenza. Il callback di convalida non ha accesso a un'istanza specifica di un DependencyObject oggetto in cui è impostata la proprietà e può influire solo sui valori accettati per la proprietà in generale. Se è necessario un callback in grado di modificare i valori delle proprietà in base a un'istanza specifica, è consigliabile usare una combinazione di callback CoerceValueCallback e PropertyChangedCallback come applicato ai metadati della proprietà. È anche possibile applicare questi callback alle proprietà correlate che devono influenzare il valore della proprietà. Per informazioni dettagliate, vedere Callback e convalida delle proprietà di dipendenza.

Metodi di estensione

GetMethodInfo(Delegate)

Ottiene un oggetto che rappresenta il metodo rappresentato dal delegato specificato.

Si applica a

Vedi anche