次の方法で共有


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 調整できるようにするためです。 ただし、メタデータが依存関係プロパティRegisterAddOwnerOverrideMetadataに適用されると、そのメタデータ インスタンスがプロパティ システムによってシールされ、プロパティが変更不可と見なされるようになりました。 これらの呼び出しのいずれかが呼び出されると、 OnApply このプロパティの値が true.

適用対象

こちらもご覧ください