PropertyMetadata.IsSealed プロパティ


メタデータが何らかの方法でプロパティに適用されていて、該当のメタデータ インスタンスが不変の状態にあるかどうかを判断する値を取得します。Gets a value that determines whether the metadata has been applied to a property in some way, resulting in the immutable state of that metadata instance.

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


メタデータ インスタンスが不変の状態の場合は true。それ以外の場合は falsetrue if the metadata instance is immutable; otherwise, false.

次の例でIsSealedは、カスタムメタデータプロパティの設定操作の前にチェックを行います。The following example checks IsSealed prior to a set operation of a custom metadata property.

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さまざまなプロパティは、オブジェクトモデルで読み取り/書き込み可能として定義されます。Various properties of PropertyMetadata, such as DefaultValue, are defined in the object model as read-write. これは、 PropertyMetadataオブジェクト自体を初期化した後に、これらのプロパティを調整できるようにするためです。This is so those properties can be adjusted after initialization of the PropertyMetadata object itself. ただし、 RegisterAddOwner、またはOverrideMetadataの呼び出しの一部としてメタデータが依存関係プロパティに適用されると、プロパティシステムによってそのメタデータインスタンスが封印され、プロパティが不変と見なされるようになります。However, once the metadata is applied to a dependency property as part of a call to Register, AddOwner, or OverrideMetadata, the property system will seal that metadata instance and the properties are now considered immutable. これらの呼び出しOnApplyのいずれかの時点で、が呼び出され、このプロパティの値がにtrue設定されます。At the time of one of these calls, OnApply is called, and the value of this property is set to true.