DependencyProperty.ReadOnly Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
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.