PropertyMetadata.IsSealed Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém um valor que determina se os metadados foram aplicados a uma propriedade de alguma forma, resultando no estado imutável dessa 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 de Propriedade
true se a instância de metadados for imutável; caso contrário, false.
Exemplos
O exemplo seguinte verifica IsSealed antes de uma operação conjunta de uma propriedade de metadados personalizada.
public Boolean SupportsMyFeature
{
get { return _supportsMyFeature; }
set { if (!this.IsSealed) _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)
{//if not set, revert to base
this.SupportsMyFeature = mcpm.SupportsMyFeature;
}
}
}
Observações
Várias propriedades de PropertyMetadata, como DefaultValue, são definidas no modelo de objetos como leitura-escrita. Isto serve 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, AddOwner, ou OverrideMetadata, o sistema de propriedades selará essa instância de metadados e as propriedades são agora consideradas imutáveis. No momento de uma destas chamadas, OnApply é chamado, e o valor desta propriedade é definido em true.