Udostępnij za pośrednictwem


DependencyProperty.ReadOnly Właściwość

Definicja

Pobiera wartość wskazującą, czy właściwość zależności zidentyfikowana przez to DependencyProperty wystąpienie jest właściwością zależności tylko do odczytu.

public:
 property bool ReadOnly { bool get(); };
public bool ReadOnly { get; }
member this.ReadOnly : bool
Public ReadOnly Property ReadOnly As Boolean

Wartość właściwości

Boolean

true jeśli właściwość zależności jest tylko do odczytu; w przeciwnym razie , false.

Przykłady

Poniższy przykład uzyskuje domyślne metadane i właściwości identyfikatora właściwości zależności z różnych pól właściwości zależności i używa informacji do wypełnienia tabeli w celu zaimplementowania "przeglądarki metadanych".

pm = dp.GetMetadata(dp.OwnerType);
MetadataClass.Text = pm.GetType().Name;
TypeofPropertyValue.Text = dp.PropertyType.Name;
DefaultPropertyValue.Text = (pm.DefaultValue!=null) ? pm.DefaultValue.ToString() : "null";
HasCoerceValue.Text = (pm.CoerceValueCallback == null) ? "No" : pm.CoerceValueCallback.Method.Name;
HasPropertyChanged.Text = (pm.PropertyChangedCallback == null) ? "No" : pm.PropertyChangedCallback.Method.Name;
ReadOnly.Text = (dp.ReadOnly) ? "Yes" : "No";
pm = dp.GetMetadata(dp.OwnerType)
MetadataClass.Text = pm.GetType().Name
TypeofPropertyValue.Text = dp.PropertyType.Name
DefaultPropertyValue.Text = If((pm.DefaultValue IsNot Nothing), pm.DefaultValue.ToString(), "null")
HasCoerceValue.Text = If((pm.CoerceValueCallback Is Nothing), "No", pm.CoerceValueCallback.Method.Name)
HasPropertyChanged.Text = If((pm.PropertyChangedCallback Is Nothing), "No", pm.PropertyChangedCallback.Method.Name)
    [ReadOnly].Text = If((dp.ReadOnly), "Yes", "No")

Uwagi

Właściwości zależności tylko do odczytu są rejestrowane w systemie właściwości, wywołując metodę RegisterReadOnly w przeciwieństwie do Register metody . Dołączone właściwości można również zarejestrować jako tylko do odczytu; zobacz RegisterAttachedReadOnly.

Właściwości zależności tylko do odczytu wymagają identyfikatora DependencyPropertyKey DependencyProperty , a nie identyfikatora do wykonywania operacji metadanych, takich jak zastępowanie metadanych lub ustawianie wartości. Jeśli uzyskano kolekcję DependencyProperty identyfikatorów za pomocą wywołania GetLocalValueEnumerator lub innego interfejsu API, który uwidacznia identyfikatory, sprawdź ReadOnly wartość przed próbą wywołania SetValue lub OverrideMetadata użycia tego identyfikatora właściwości zależności jako parametru wejściowego, aby sprawdzić, czy właściwość zależności, którą reprezentuje identyfikator, nie jest tylko do odczytu. Jeśli wartość ReadOnly właściwości true jest oparta na właściwości zależności, nie ma programowego sposobu uzyskania odwołania do DependencyPropertyKey identyfikatora tej właściwości zależności, z metadanych lub DependencyProperty z identyfikatora; identyfikator musi być dostępny jako pole statyczne w celu wywołania SetValue(DependencyPropertyKey, Object) właściwości zależności tylko do odczytu.

Podczas tworzenia niestandardowej właściwości zależności i rejestrowania jej jako tylko do odczytu należy zdefiniować tylko metodę get dla właściwości otoki CLR. W przeciwnym razie klasa będzie miała mylący model obiektów dla otoki właściwości w porównaniu z dostępem do właściwości zależności zaplecza. Aby uzyskać szczegółowe informacje, zobacz Właściwości zależności niestandardowej lub Właściwości zależności tylko do odczytu.

Dotyczy

Zobacz też