PropertyMetadata.IsSealed PropertyMetadata.IsSealed PropertyMetadata.IsSealed PropertyMetadata.IsSealed Property


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