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 对象本身后,可以调整这些属性。 但是,一旦元数据作为调用RegisterAddOwner的一部分应用于依赖属性,或者OverrideMetadata属性系统将密封元数据实例和属性现在被视为不可变。 在调用其中一个调用时, OnApply 将调用此属性的值设置为 true

适用于

另请参阅