Compartilhar via


DependencyProperty.OverrideMetadata Método

Definição

Fornece os metadados alternativos para esta propriedade de dependência quando ela existe em instâncias de um tipo especificado, em comparação com os metadados que foram fornecidos no registro de propriedade de dependência inicial.

Sobrecargas

OverrideMetadata(Type, PropertyMetadata)

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

OverrideMetadata(Type, PropertyMetadata, DependencyPropertyKey)

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

OverrideMetadata(Type, PropertyMetadata)

Especifica os metadados alternativos para essa propriedade de dependência quando está presente em instâncias de um tipo especificado, substituindo os metadados existentes para a propriedade de dependência conforme ela foi herdada dos 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 no qual essa propriedade de dependência é herdada e 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 como 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 de 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 de 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. Por fim, 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 framework.

Aplica-se a

OverrideMetadata(Type, PropertyMetadata, DependencyPropertyKey)

Fornece os metadados alternativos para uma propriedade de dependência somente leitura quando ela existe em instâncias de um tipo especificado, substituindo os metadados que foram fornecidos no registro de propriedade de dependência inicial. Você deve passar o DependencyPropertyKey para a propriedade de dependência somente leitura para evitar gerar 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 no qual essa propriedade de dependência é herdada e 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 de 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 de 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 framework.

Aplica-se a