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 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.

Gilt für

Siehe auch