言語

PropertyMetadata.IsSealed プロパティ

定義

メタデータが何らかの方法でプロパティに適用され、そのメタデータ インスタンスの変更できない状態になったかどうかを決定する値を取得します。

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

プロパティ値

true メタデータ インスタンスが変更できない場合。それ以外の場合は false

次の例では、カスタム メタデータ プロパティの設定操作の前に 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;
        }
    }
}

注釈

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

適用対象

こちらもご覧ください