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 angegebene 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
true
, wenn die Abhängigkeitseigenschaft schreibgeschützt ist, andernfalls false
.
Beispiele
Im folgenden Beispiel werden die Standardmetadaten und die Eigenschaftenbezeichner der Abhängigkeitseigenschaft aus verschiedenen Abhängigkeitseigenschaftsfeldern abgerufen und die Informationen verwendet, um eine Tabelle aufzufüllen, 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 Methode aufgerufen wird, anstatt die RegisterReadOnly Register Methode zu verwenden. Angefügte Eigenschaften können auch als schreibgeschützt registriert werden; siehe RegisterAttachedReadOnly.
Schreibgeschützte Abhängigkeitseigenschaften erfordern einen Bezeichner anstelle eines DependencyPropertyKey DependencyProperty Bezeichners, um Metadatenvorgänge auszuführen, z. B. das Außerkraftsetzen der Metadaten oder festlegen des Werts. Wenn Sie eine Sammlung von DependencyProperty Bezeichnern über einen Aufruf GetLocalValueEnumerator oder eine andere API erhalten haben, die Bezeichner verfügbar macht, überprüfen Sie den ReadOnly Wert, bevor Sie versuchen, diesen Abhängigkeitseigenschaftsbezeichner als Eingabeparameter zu aufrufen SetValue oder OverrideMetadata zu verwenden, um zu überprüfen, ob die Abhängigkeitseigenschaft, die den Bezeichner darstellt, nicht schreibgeschützt ist. Wenn sich der Wert ReadOnly true
auf einer Abhängigkeitseigenschaft befindet, gibt es keine programmgesteuerte Möglichkeit, einen Verweis auf den DependencyPropertyKey Bezeichner dieser Abhängigkeitseigenschaft zu erhalten, aus den Metadaten oder aus dem DependencyProperty Bezeichner; der Bezeichner muss als statisches Feld SetValue(DependencyPropertyKey, Object) verfügbar sein, um eine schreibgeschützte Abhängigkeitseigenschaft aufzurufen.
Wenn Sie eine benutzerdefinierte Abhängigkeitseigenschaft erstellen und als schreibgeschützt registrieren, sollten Sie nur einen Get-Accessor für die CLR-Wrapper-Eigenschaft definieren. Andernfalls verfügt Ihre Klasse über ein verwirrendes Objektmodell für den Eigenschaftenumbruch im Vergleich zum Zugriff auf die Backing-Abhängigkeitseigenschaft. Weitere Informationen finden Sie unter Benutzerdefinierte Abhängigkeitseigenschaften oder Schreibgeschützte Abhängigkeitseigenschaften.