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.

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

Значение свойства

true, если экземпляр метаданных не подлежит изменениям; в противном случае — false.true 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. Однако после применения метаданных к свойству зависимостей в рамках вызова Register, AddOwnerили 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 вызывается, и значение этого свойства устанавливается равным. trueAt the time of one of these calls, OnApply is called, and the value of this property is set to true.

Применяется к

Дополнительно