PropertyMetadata.IsSealed Propriedade

Definição

Obtém um valor que determina se os metadados foram aplicados a uma propriedade de alguma forma, resultando em um estado imutável daquela instância de metadados.

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

Valor da propriedade

Boolean

true se a instância de metadados for imutável; caso contrário, false.

Exemplos

O exemplo a seguir verifica IsSealed antes de uma operação de conjunto de uma propriedade de metadados personalizada.

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;
        }
    }
}

Comentários

Várias propriedades de PropertyMetadata, como DefaultValue, são definidas no modelo de objeto como leitura-gravação. Isso é para que essas propriedades possam ser ajustadas após a inicialização do PropertyMetadata próprio objeto. No entanto, uma vez que os metadados são aplicados a uma propriedade de dependência como parte de uma chamada para Register, AddOwnerou OverrideMetadata, o sistema de propriedades selará essa instância de metadados e as propriedades agora são consideradas imutáveis. No momento de uma dessas chamadas, OnApply é chamado e o valor dessa propriedade é definido como true.

Aplica-se a

Confira também