PropertyMetadata.IsSealed Eigenschaft

Definition

Ruft einen Wert ab, der bestimmt, ob die Metadaten auf eine Eigenschaft auf irgendeine Weise angewendet wurden, was zu einem unveränderlichen Zustand dieser Metadateninstanz führt.

protected:
 property bool IsSealed { bool get(); };
protected bool IsSealed { get; }
member this.IsSealed : bool
Protected ReadOnly Property IsSealed As Boolean

Eigenschaftswert

truewenn die Metadateninstanz unveränderlich ist; andernfalls . false

Beispiele

Im folgenden Beispiel wird vor einem Satzvorgang einer benutzerdefinierten Metadateneigenschaft überprüft IsSealed .

public Boolean SupportsMyFeature
{
    get { return _supportsMyFeature; }
    set { if (!this.IsSealed) _supportsMyFeature = value; } //else may want to raise exception 
}
protected override void Merge(PropertyMetadata baseMetadata, DependencyProperty dp)
{
    base.Merge(baseMetadata, dp);
    MyCustomPropertyMetadata mcpm = baseMetadata as MyCustomPropertyMetadata;
    if (mcpm != null)
    {
        if (!this.SupportsMyFeature)
        {//if not set, revert to base
            this.SupportsMyFeature = mcpm.SupportsMyFeature;
        }
    }
}

Hinweise

Verschiedene Eigenschaften von PropertyMetadata, z DefaultValue. B. , werden im Objektmodell als Lese-/Schreibzugriff definiert. Dies ist so, dass diese Eigenschaften nach der Initialisierung des PropertyMetadata Objekts selbst angepasst werden können. Sobald die Metadaten jedoch als Teil eines Aufrufs von Register, AddOwneroder , oder OverrideMetadata, auf eine Abhängigkeitseigenschaft angewendet werden, wird das Eigenschaftensystem die Metadateninstanz und die Eigenschaften jetzt als unveränderlich betrachtet. Zum Zeitpunkt eines dieser Aufrufe wird aufgerufen, OnApply und der Wert dieser Eigenschaft wird auf truefestgelegt.

Gilt für:

Weitere Informationen