DependencyProperty.ReadOnly DependencyProperty.ReadOnly DependencyProperty.ReadOnly DependencyProperty.ReadOnly Property

Definition

Ruft einen Wert ab, der angibt, ob die von dieser DependencyProperty-Instanz angegebene Abhängigkeitseigenschaft eine schreibgeschützte Abhängigkeitseigenschaft ist.Gets a value that indicates whether the dependency property identified by this DependencyProperty instance is a read-only dependency property.

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.true if the dependency property is read-only; otherwise, false.

Beispiele

Im folgende Beispiel ruft die Standardmetadaten und die Eigenschaft Bezeichner Abhängigkeitseigenschaften aus verschiedenen Feldern der Dependency-Eigenschaft ab, und verwendet die Informationen zum Auffüllen einer Tabelle zum Implementieren von "Metadatenbrowser".The following example obtains the default metadata and the dependency property identifier properties from various dependency property fields, and uses the information to populate a table to implement a "metadata browser".

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 im Eigenschaftensystem registriert sind, durch den Aufruf der RegisterReadOnly Methode im Gegensatz zu den Register Methode.Read-only dependency properties are registered within the property system by calling the RegisterReadOnly method as opposed to the Register method. Angefügte Eigenschaften können auch als nur-Lese registriert werden; finden Sie unter RegisterAttachedReadOnly.Attached properties can also be registered as read-only; see RegisterAttachedReadOnly.

Schreibgeschützte Abhängigkeitseigenschaften ist erforderlich, eine DependencyPropertyKey Bezeichner anstelle eines DependencyProperty Bezeichner auszuführenden Vorgänge mit Metadaten wie z. B. das Überschreiben der Metadaten oder Festlegen des Werts.Read-only dependency properties require a DependencyPropertyKey identifier rather than a DependencyProperty identifier to perform metadata operations such as overriding the metadata or setting the value. Wenn Sie eine Auflistung von erhalten DependencyProperty Bezeichner durch einen Aufruf von GetLocalValueEnumerator oder einem anderen APIAPI , verfügbar macht, Bezeichner, überprüfen Sie die ReadOnly Wert vor dem Aufrufen SetValue oder OverrideMetadata verwenden, der Abhängigkeitseigenschaftbezeichner als Eingabeparameter, um sicherzustellen, dass die Abhängigkeitseigenschaft, die den Bezeichner darstellt, nicht schreibgeschützt ist.If you obtained a collection of DependencyProperty identifiers through a call to GetLocalValueEnumerator or another APIAPI that exposes identifiers, check the ReadOnly value before attempting to call SetValue or OverrideMetadata using that dependency property identifier as an input parameter, to verify that the dependency property that the identifier represents is not read-only. Wenn der Wert des ReadOnly ist true für eine Abhängigkeitseigenschaft, es ist keine programmgesteuerte Möglichkeit zum Abrufen eines Verweises auf die DependencyPropertyKey Bezeichner für die Abhängigkeitseigenschaft, die aus den Metadaten oder aus der DependencyProperty Bezeichner; der Bezeichner muss als ein statisches Feld verfügbar sein, um Aufrufen SetValue(DependencyPropertyKey, Object) für eine schreibgeschützte Abhängigkeitseigenschaft.If the value of ReadOnly is true on a dependency property, there is no programmatic way to obtain a reference to the DependencyPropertyKey identifier of that dependency property, from the metadata or from the DependencyProperty identifier; the identifier must be available as a static field in order to call SetValue(DependencyPropertyKey, Object) against a read-only dependency property.

Wenn Sie eine benutzerdefinierte Abhängigkeitseigenschaft erstellen und registrieren Sie ihn als schreibgeschützt, definieren Sie nur einen Get-Accessor für die CLRCLR Wrapper-Eigenschaft.When you create a custom dependency property, and register it as read-only, you should define only a get accessor for the CLRCLR wrapper property. Andernfalls müssen die Klasse ein verwirrendes Objektmodell für den Eigenschaftenwrapper im Vergleich zu den Zugriff auf die dahinter liegende Abhängigkeitseigenschaft.Otherwise, your class will have a confusing object model for the property wrapper as compared to the access to the backing dependency property. Weitere Informationen finden Sie unter benutzerdefinierte Abhängigkeitseigenschaften oder schreibgeschützte Abhängigkeitseigenschaften.For details, see Custom Dependency Properties or Read-Only Dependency Properties.

Gilt für:

Siehe auch