DependencyProperty.RegisterReadOnly Metodo

Definizione

Registra una proprietà di dipendenza come proprietà di dipendenza di sola lettura.

Overload

RegisterReadOnly(String, Type, Type, PropertyMetadata)

Registra una proprietà di dipendenza di sola lettura con il tipo e i metadati della proprietà e il tipo di proprietario specificati.

RegisterReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback)

Registra una proprietà di dipendenza di sola lettura, con il tipo di proprietà, il tipo di proprietario, i metadati della proprietà e un callback di convalida specificati.

RegisterReadOnly(String, Type, Type, PropertyMetadata)

Registra una proprietà di dipendenza di sola lettura con il tipo e i metadati della proprietà e il tipo di proprietario specificati.

public:
 static System::Windows::DependencyPropertyKey ^ RegisterReadOnly(System::String ^ name, Type ^ propertyType, Type ^ ownerType, System::Windows::PropertyMetadata ^ typeMetadata);
public static System.Windows.DependencyPropertyKey RegisterReadOnly (string name, Type propertyType, Type ownerType, System.Windows.PropertyMetadata typeMetadata);
static member RegisterReadOnly : string * Type * Type * System.Windows.PropertyMetadata -> System.Windows.DependencyPropertyKey
Public Shared Function RegisterReadOnly (name As String, propertyType As Type, ownerType As Type, typeMetadata As PropertyMetadata) As DependencyPropertyKey

Parametri

name
String

Nome della proprietà di dipendenza da registrare.

propertyType
Type

Tipo della proprietà.

ownerType
Type

Tipo di proprietario che registra la proprietà di dipendenza.

typeMetadata
PropertyMetadata

Metadati della proprietà per la proprietà di dipendenza.

Restituisce

Chiave della proprietà di dipendenza che deve essere usata per impostare il valore di un campo statico di sola lettura nella classe, che viene quindi usata per fare riferimento alla proprietà di dipendenza.

Esempio

Nell'esempio seguente viene registrata una AquariumSize proprietà di dipendenza come di sola lettura. L'esempio definisce AquariumSizeKey come chiave interna (in modo che altre classi nell'assembly possano eseguire l'override dei metadati) ed espone l'identificatore della proprietà di dipendenza in base a tale chiave come AquariumSizeProperty. Viene anche creato un wrapper per AquariumSize, con solo una funzione di accesso get.

internal static readonly DependencyPropertyKey AquariumSizeKey = DependencyProperty.RegisterReadOnly(
  "AquariumSize",
  typeof(double),
  typeof(Aquarium),
  new PropertyMetadata(double.NaN)
);
public static readonly DependencyProperty AquariumSizeProperty =
  AquariumSizeKey.DependencyProperty;
public double AquariumSize
{
  get { return (double)GetValue(AquariumSizeProperty); }
}
Friend Shared ReadOnly AquariumSizeKey As DependencyPropertyKey = DependencyProperty.RegisterReadOnly("AquariumSize", GetType(Double), GetType(Aquarium), New PropertyMetadata(Double.NaN))
Public Shared ReadOnly AquariumSizeProperty As DependencyProperty = AquariumSizeKey.DependencyProperty
Public ReadOnly Property AquariumSize() As Double
    Get
        Return CDbl(GetValue(AquariumSizeProperty))
    End Get
End Property

Commenti

Questo metodo restituisce il tipo DependencyPropertyKey, mentre RegisterAttached restituisce il tipo DependencyProperty. In genere, le chiavi che rappresentano proprietà di sola lettura non vengono rese pubbliche, perché le chiavi possono essere usate per impostare il valore della proprietà di dipendenza chiamando SetValue(DependencyPropertyKey, Object). La progettazione della classe influirà sui requisiti, ma in genere è consigliabile limitare l'accesso e la visibilità di qualsiasi DependencyPropertyKey elemento solo a quelle parti del codice necessarie per impostare tale proprietà di dipendenza come parte della logica della classe o dell'applicazione. È inoltre consigliabile esporre un identificatore di proprietà di dipendenza per la proprietà di dipendenza di sola lettura esponendo il valore di DependencyPropertyKey.DependencyProperty come public static readonly campo nella classe.

Le proprietà di dipendenza di sola lettura sono uno scenario abbastanza tipico sia nell'API esistente che negli scenari di personalizzazione, perché altre funzionalità WPF potrebbero richiedere una proprietà di dipendenza anche se tale proprietà non deve essere impostata dai chiamanti. È possibile usare il valore di una proprietà di dipendenza di sola lettura come base per altre operazioni del sistema di proprietà che accettano una proprietà di dipendenza, ad esempio basando un Trigger oggetto sulla proprietà di dipendenza in uno stile.

Per altre informazioni sulla registrazione delle proprietà di dipendenza, vedere DependencyProperty.

Si applica a

RegisterReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback)

Registra una proprietà di dipendenza di sola lettura, con il tipo di proprietà, il tipo di proprietario, i metadati della proprietà e un callback di convalida specificati.

public:
 static System::Windows::DependencyPropertyKey ^ RegisterReadOnly(System::String ^ name, Type ^ propertyType, Type ^ ownerType, System::Windows::PropertyMetadata ^ typeMetadata, System::Windows::ValidateValueCallback ^ validateValueCallback);
public static System.Windows.DependencyPropertyKey RegisterReadOnly (string name, Type propertyType, Type ownerType, System.Windows.PropertyMetadata typeMetadata, System.Windows.ValidateValueCallback validateValueCallback);
static member RegisterReadOnly : string * Type * Type * System.Windows.PropertyMetadata * System.Windows.ValidateValueCallback -> System.Windows.DependencyPropertyKey
Public Shared Function RegisterReadOnly (name As String, propertyType As Type, ownerType As Type, typeMetadata As PropertyMetadata, validateValueCallback As ValidateValueCallback) As DependencyPropertyKey

Parametri

name
String

Nome della proprietà di dipendenza da registrare.

propertyType
Type

Tipo della proprietà.

ownerType
Type

Tipo di proprietario che registra la proprietà di dipendenza.

typeMetadata
PropertyMetadata

Metadati della proprietà per la proprietà di dipendenza.

validateValueCallback
ValidateValueCallback

Riferimento a un callback creato dall'utente che deve eseguire qualsiasi convalida personalizzata del valore della proprietà di dipendenza oltre la normale convalida del tipo.

Restituisce

Chiave della proprietà di dipendenza che deve essere usata per impostare il valore di un campo statico di sola lettura nella classe, che viene quindi usata per fare riferimento alla proprietà di dipendenza in un secondo momento.

Commenti

Questo metodo restituisce il tipo DependencyPropertyKey, mentre RegisterAttached restituisce il tipo DependencyProperty. In genere, le chiavi che rappresentano proprietà di sola lettura non vengono rese pubbliche, perché le chiavi possono essere usate per impostare il valore della proprietà di dipendenza chiamando SetValue(DependencyPropertyKey, Object). La progettazione della classe influirà sui requisiti, ma in genere è consigliabile limitare l'accesso e la visibilità di qualsiasi DependencyPropertyKey elemento solo a quelle parti del codice necessarie per impostare tale proprietà di dipendenza come parte della logica della classe o dell'applicazione. È inoltre consigliabile esporre un identificatore di proprietà di dipendenza per la proprietà di dipendenza di sola lettura esponendo il valore di DependencyPropertyKey.DependencyProperty come public static readonly campo nella classe.

Le proprietà di dipendenza di sola lettura sono uno scenario piuttosto tipico. È possibile usare il valore di una proprietà di dipendenza di sola lettura come base per altre operazioni del sistema di proprietà che accettano una proprietà di dipendenza, ad esempio basando un Trigger oggetto sulla proprietà di dipendenza in uno stile.

Per altre informazioni sulla registrazione delle proprietà di dipendenza, vedere DependencyProperty.

La convalida in una proprietà di dipendenza di sola lettura potrebbe essere meno importante. Il livello di accesso non pubblico specificato per la chiave riduce la probabilità di input arbitrario non valido.

Si applica a