DependencyProperty.ReadOnly Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft einen Wert ab, der angibt, ob die von dieser DependencyProperty Instanz identifizierte Abhängigkeitseigenschaft eine schreibgeschützte Abhängigkeitseigenschaft ist.
public:
property bool ReadOnly { bool get(); };
public bool ReadOnly { get; }
member this.ReadOnly : bool
Public ReadOnly Property ReadOnly As Boolean
Eigenschaftswert
truewenn die Abhängigkeitseigenschaft schreibgeschützt ist; andernfalls . false
Beispiele
Im folgenden Beispiel werden die Standardmetadaten und die Eigenschaften der Abhängigkeitseigenschafts-ID aus verschiedenen Abhängigkeitseigenschaftsfeldern abgerufen und die Informationen zum Auffüllen einer Tabelle verwendet, um einen "Metadatenbrowser" zu implementieren.
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")
Hinweise
Schreibgeschützte Abhängigkeitseigenschaften werden im Eigenschaftensystem registriert, indem die RegisterReadOnly Methode im Gegensatz zur Register Methode aufgerufen wird. Angefügte Eigenschaften können auch schreibgeschützt registriert werden. siehe RegisterAttachedReadOnly.
Schreibgeschützte Abhängigkeitseigenschaften erfordern einen DependencyPropertyKey Bezeichner anstelle eines DependencyProperty Bezeichners, um Metadatenvorgänge auszuführen, z. B. das Überschreiben der Metadaten oder das Festlegen des Werts. Wenn Sie eine Sammlung von DependencyProperty Bezeichnern über einen Aufruf GetLocalValueEnumerator oder eine andere API abgerufen haben, die Bezeichner verfügbar macht, überprüfen Sie den Wert, bevor Sie versuchen, diesen ReadOnly Abhängigkeitseigenschaftsbezeichner als Eingabeparameter aufzurufen SetValue oder OverrideMetadata zu verwenden, um zu überprüfen, ob die Abhängigkeitseigenschaft, die der Bezeichner darstellt, nicht schreibgeschützt ist. Wenn sich der Wert ReadOnlytrue einer Abhängigkeitseigenschaft befindet, gibt es keine programmgesteuerte Möglichkeit, einen Verweis auf den DependencyPropertyKey Bezeichner dieser Abhängigkeitseigenschaft aus den Metadaten oder dem DependencyProperty Bezeichner abzurufen. Der Bezeichner muss als statisches Feld verfügbar sein, um eine schreibgeschützte Abhängigkeitseigenschaft aufzurufen SetValue(DependencyPropertyKey, Object) .
Wenn Sie eine benutzerdefinierte Abhängigkeitseigenschaft erstellen und als schreibgeschützt registrieren, sollten Sie nur einen Get-Accessor für die CLR-Wrappereigenschaft definieren. Andernfalls weist die Klasse ein verwirrendes Objektmodell für den Eigenschaftenwrapper im Vergleich zum Zugriff auf die zugrunde ende Abhängigkeitseigenschaft auf. Ausführliche Informationen finden Sie unter Benutzerdefinierte Abhängigkeitseigenschaften oder Read-Only Abhängigkeitseigenschaften.