DependencyProperty.ReadOnly Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá hodnotu, která označuje, zda závislost vlastnost identifikovaná touto DependencyProperty instancí je závislost jen pro čtení vlastnost.
public:
property bool ReadOnly { bool get(); };
public bool ReadOnly { get; }
member this.ReadOnly : bool
Public ReadOnly Property ReadOnly As Boolean
Hodnota vlastnosti
true
pokud je vlastnost závislosti jen pro čtení; false
v opačném případě .
Příklady
Následující příklad získá výchozí metadata a vlastnosti identifikátoru vlastnosti závislosti z různých polí vlastností závislostí a pomocí informací naplní tabulku k implementaci "prohlížeče metadat".
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")
Poznámky
Vlastnosti závislostí jen pro čtení jsou registrovány v systému vlastností voláním RegisterReadOnly metody na rozdíl od Register metody. Připojené vlastnosti lze také zaregistrovat jako jen pro čtení; viz RegisterAttachedReadOnly.
Vlastnosti závislostí jen pro čtení vyžadují DependencyPropertyKey identifikátor místo identifikátoru DependencyProperty k provádění operací metadat, jako je přepsání metadat nebo nastavení hodnoty. Pokud jste získali kolekci DependencyProperty identifikátorů prostřednictvím volání GetLocalValueEnumerator nebo jiného rozhraní API, které zveřejňuje identifikátory, zkontrolujte ReadOnly hodnotu před pokusem o volání SetValue nebo OverrideMetadata použití tohoto identifikátoru vlastnosti závislosti jako vstupního parametru, abyste ověřili, že vlastnost závislosti, kterou identifikátor představuje, není jen pro čtení. Pokud je true
hodnota ReadOnly vlastnosti závislosti, neexistuje žádný programový způsob, jak získat odkaz na DependencyPropertyKey identifikátor této vlastnosti závislosti, z metadat nebo identifikátoruDependencyProperty; identifikátor musí být k dispozici jako statické pole, aby bylo možné volat SetValue(DependencyPropertyKey, Object) proti vlastnosti závislostí jen pro čtení.
Když vytvoříte vlastní vlastnost závislostí a zaregistrujete ji jako jen pro čtení, měli byste definovat pouze objekt get pro vlastnost obálky CLR. V opačném případě třída bude mít matoucí objektový model pro obálku vlastnosti ve srovnání s přístupem k backing závislost vlastnost. Podrobnosti najdete v tématu Vlastnosti vlastní závislosti nebo vlastnosti závislostí jen pro čtení.