DependencyProperty.OverrideMetadata Método

Definição

Fornece metadados alternativos para essa propriedade de dependência quando ela está presente em instâncias de um tipo especificado, em comparação com os metadados fornecidos no registro da propriedade de dependência inicial.

Sobrecargas

Nome Description
OverrideMetadata(Type, PropertyMetadata)

Especifica metadados alternativos para essa propriedade de dependência quando ela está presente em instâncias de um tipo especificado, substituindo os metadados que existiam para a propriedade de dependência, pois ela foi herdada de tipos base.

OverrideMetadata(Type, PropertyMetadata, DependencyPropertyKey)

Fornece metadados alternativos para uma propriedade de dependência somente leitura quando ela está presente em instâncias de um tipo especificado, substituindo os metadados fornecidos no registro da propriedade de dependência inicial. Você deve passar a DependencyPropertyKey propriedade de dependência somente leitura para evitar a criação de uma exceção.

OverrideMetadata(Type, PropertyMetadata)

Especifica metadados alternativos para essa propriedade de dependência quando ela está presente em instâncias de um tipo especificado, substituindo os metadados que existiam para a propriedade de dependência, pois ela foi herdada de tipos base.

public:
 void OverrideMetadata(Type ^ forType, System::Windows::PropertyMetadata ^ typeMetadata);
public void OverrideMetadata(Type forType, System.Windows.PropertyMetadata typeMetadata);
member this.OverrideMetadata : Type * System.Windows.PropertyMetadata -> unit
Public Sub OverrideMetadata (forType As Type, typeMetadata As PropertyMetadata)

Parâmetros

forType
Type

O tipo em que essa propriedade de dependência é herdada e onde os metadados alternativos fornecidos serão aplicados.

typeMetadata
PropertyMetadata

Os metadados a serem aplicados à propriedade de dependência no tipo de substituição.

Exceções

Foi feita uma tentativa de substituir metadados em uma propriedade de dependência somente leitura (essa operação não pode ser feita usando essa assinatura).

Os metadados já foram estabelecidos para a propriedade de dependência, pois ela existe no tipo fornecido.

Comentários

Os metadados da propriedade de dependência devem ser substituídos antes que o sistema de propriedades use a propriedade de dependência. Isso equivale ao tempo em que instâncias específicas são criadas usando a classe que registra a propriedade de dependência. As chamadas só OverrideMetadata devem ser executadas dentro dos construtores estáticos do tipo que se fornece como o forType parâmetro desse método ou por meio de instanciação semelhante. A tentativa de alterar metadados após a existência de instâncias do tipo proprietário não gerará exceções, mas resultará em comportamentos inconsistentes no sistema de propriedades.

Depois que os metadados de uma substituição de classe derivada específica forem estabelecidos com esse método, as tentativas subsequentes de substituir metadados nessa mesma classe derivada gerarão uma exceção.

Os metadados fornecidos são mesclados com os metadados de propriedade para a propriedade de dependência como ela existe no proprietário base. Todas as características especificadas nos metadados base originais persistirão; somente as características que foram alteradas especificamente nos novos metadados substituirão as características dos metadados base. Algumas características, como, por exemplo DefaultValue , são substituídas se especificadas nos novos metadados. Outros, como PropertyChangedCallback, são combinados. Em última análise, o comportamento de mesclagem depende do tipo de metadados de propriedade que está sendo usado para a substituição, portanto, o comportamento descrito aqui é para as classes de metadados de propriedade existentes usadas pelas propriedades de dependência do WPF. Para obter detalhes, consulte Metadados de Propriedade de Dependência e Metadados de Propriedade da Estrutura.

Aplica-se a

OverrideMetadata(Type, PropertyMetadata, DependencyPropertyKey)

Fornece metadados alternativos para uma propriedade de dependência somente leitura quando ela está presente em instâncias de um tipo especificado, substituindo os metadados fornecidos no registro da propriedade de dependência inicial. Você deve passar a DependencyPropertyKey propriedade de dependência somente leitura para evitar a criação de uma exceção.

public:
 void OverrideMetadata(Type ^ forType, System::Windows::PropertyMetadata ^ typeMetadata, System::Windows::DependencyPropertyKey ^ key);
public void OverrideMetadata(Type forType, System.Windows.PropertyMetadata typeMetadata, System.Windows.DependencyPropertyKey key);
member this.OverrideMetadata : Type * System.Windows.PropertyMetadata * System.Windows.DependencyPropertyKey -> unit
Public Sub OverrideMetadata (forType As Type, typeMetadata As PropertyMetadata, key As DependencyPropertyKey)

Parâmetros

forType
Type

O tipo em que essa propriedade de dependência é herdada e onde os metadados alternativos fornecidos serão aplicados.

typeMetadata
PropertyMetadata

Os metadados a serem aplicados à propriedade de dependência no tipo de substituição.

key
DependencyPropertyKey

A chave de acesso para uma propriedade de dependência somente leitura.

Comentários

Essa assinatura fornece a implementação subjacente para um método de identificador de propriedade de dependência somente leitura (DependencyPropertyKey). Se substituir metadados para uma propriedade de dependência de leitura/gravação, use OverrideMetadata(Type, PropertyMetadata).

Os metadados da propriedade de dependência devem ser substituídos antes que o sistema de propriedades use a propriedade de dependência. Isso equivale ao tempo em que objetos específicos são criados para a classe que registra a propriedade de dependência. As chamadas só OverrideMetadata devem ser executadas dentro dos construtores estáticos do tipo que se fornece como o forType parâmetro desse método ou por meio de instanciação semelhante. A tentativa de alterar metadados após a existência de instâncias do tipo proprietário não gerará exceções, mas resultará em comportamentos inconsistentes no sistema de propriedades.

Depois que os metadados de uma substituição de classe derivada específica forem estabelecidos com esse método, as tentativas subsequentes de substituir metadados nessa mesma classe derivada gerarão uma exceção.

Os metadados fornecidos são mesclados com os metadados de propriedade para a propriedade de dependência como ela existe no proprietário base. Todas as características especificadas nos metadados base originais persistirão; somente as características que foram alteradas especificamente nos novos metadados substituirão as características dos metadados base. Algumas características, como, por exemplo DefaultValue , são substituídas se especificadas nos novos metadados. Outros, como PropertyChangedCallback, são combinados. O comportamento de mesclagem depende do tipo de metadados de propriedade que está sendo usado para a substituição. Para obter detalhes, consulte Metadados de Propriedade de Dependência e Metadados de Propriedade da Estrutura.

Aplica-se a