DependencyProperty.ReadOnly Eigenschaft

Definition

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

Boolean

true, wenn die Abhängigkeitseigenschaft schreibgeschützt ist, andernfalls false.

Beispiele

Im folgenden Beispiel werden die Standardmetadaten und die Eigenschaften der Abhängigkeitseigenschaftsbezeichner 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 sie die RegisterReadOnly Methode im Gegensatz zur Register Methode aufruft. 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 Außerkraftsetzen der Metadaten oder 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 ReadOnly Wert, bevor Sie versuchen SetValue , diesen Bezeichner der Abhängigkeitseigenschaft als Eingabeparameter aufzurufen oder OverrideMetadata zu verwenden, um zu überprüfen, ob die Abhängigkeitseigenschaft, die der 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, aus den Metadaten oder vom 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 verfügt Ihre Klasse über ein verwirrendes Objektmodell für den Eigenschaftenwrapper im Vergleich zum Zugriff auf die Sicherungsabhängigkeitseigenschaft. Ausführliche Informationen finden Sie unter Benutzerdefinierte Abhängigkeitseigenschaften oder Schreibgeschützte Abhängigkeitseigenschaften.

Gilt für:

Siehe auch