PropertyMetadata.IsSealed プロパティ

定義

メタデータが何らかの方法でプロパティに適用されていて、該当のメタデータ インスタンスが不変の状態にあるかどうかを判断する値を取得します。

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

プロパティ値

Boolean

メタデータ インスタンスが不変の状態の場合は true。それ以外の場合は false

次の例では、 IsSealed カスタム メタデータ プロパティの設定操作の前にチェックを行います。

public Boolean SupportsMyFeature
{
    get { return _supportsMyFeature; }
    set { if (this.IsSealed != true) _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 == false)
        {//if not set, revert to base
            this.SupportsMyFeature = mcpm.SupportsMyFeature;
        }
    }
}

注釈

オブジェクト モデルでは PropertyMetadata 、 などの DefaultValue さまざまなプロパティが読み取り/書き込みとして定義されます。 そのため、これらのプロパティは、オブジェクト自体の初期化後 PropertyMetadata に調整できます。 ただし、、、または の呼び出しの一環としてメタデータが依存関係プロパティに適用されると、プロパティ システムによってそのメタデータ インスタンスがシールされ、プロパティは変更できないと見 Register AddOwner OverrideMetadata なされます。 これらの呼び出しの時点で、 が呼び出され、このプロパティの OnApply 値が に設定されます true

適用対象

こちらもご覧ください