Compartilhar via


DependencyPropertyKey Classe

Definição

Fornece um identificador de propriedade de dependência para acesso de gravação limitado a uma propriedade de dependência somente leitura.

public ref class DependencyPropertyKey sealed
public sealed class DependencyPropertyKey
type DependencyPropertyKey = class
Public NotInheritable Class DependencyPropertyKey
Herança
DependencyPropertyKey

Exemplos

O exemplo a seguir registra uma propriedade de dependência somente leitura e também usa a chave para duas finalidades em outros membros da classe: implementar o "wrapper" get e como o identificador para uma operação de determinação protegida que define o valor com base nos cálculos de outros valores de propriedade.

internal static readonly DependencyPropertyKey AquariumSizeKey = DependencyProperty.RegisterReadOnly(
  "AquariumSize",
  typeof(double),
  typeof(Aquarium),
  new PropertyMetadata(double.NaN)
);
public static readonly DependencyProperty AquariumSizeProperty =
  AquariumSizeKey.DependencyProperty;
public double AquariumSize
{
  get { return (double)GetValue(AquariumSizeProperty); }
}
Friend Shared ReadOnly AquariumSizeKey As DependencyPropertyKey = DependencyProperty.RegisterReadOnly("AquariumSize", GetType(Double), GetType(Aquarium), New PropertyMetadata(Double.NaN))
Public Shared ReadOnly AquariumSizeProperty As DependencyProperty = AquariumSizeKey.DependencyProperty
Public ReadOnly Property AquariumSize() As Double
    Get
        Return CDbl(GetValue(AquariumSizeProperty))
    End Get
End Property

Comentários

DependencyPropertyKey instâncias são obtidas como o valor retornado de uma chamada de registro de propriedade de dependência usando os métodos RegisterReadOnly ou RegisterAttachedReadOnly.

Os tipos que registram uma propriedade de dependência podem usar o DependencyPropertyKey em chamadas para SetValue e ClearValue que ajustam o valor da propriedade como parte da lógica de classe. Se permitido pelo nível de acesso da chave, as classes relacionadas também podem usar a chave e a propriedade de dependência. Por exemplo, você pode declarar a chave como interna e outros tipos dentro do mesmo assembly também podem definir essa propriedade de dependência.

O DependencyPropertyKey retornado pelo registro de propriedade de dependência somente leitura não deve ser tornado público, pois expor a chave torna a propriedade configurável, derrotando assim o ponto de registrá-la como uma propriedade de dependência somente leitura. Além disso, expor a chave causa uma incompatibilidade entre os comportamentos de propriedade de dependência disponíveis e suas implementações de wrapper de propriedade CLR (Common Language Runtime), que é um design de classe inválido.

Em vez de expor a chave em si, você deve expor o valor DependencyProperty do DependencyPropertyKey como um public static readonlyDependencyProperty em sua classe. Isso permite que a propriedade retorne um identificador de propriedade de dependência válido para determinadas operações do sistema de propriedades, como enumerar valores definidos localmente. No entanto, o identificador obtido, portanto, não tem os recursos completos de um DependencyProperty para muitas operações do sistema de propriedades.

Propriedades

DependencyProperty

Obtém o identificador de propriedade de dependência associado a esse identificador de propriedade de dependência somente leitura especializado.

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
OverrideMetadata(Type, PropertyMetadata)

Substitui os metadados de uma propriedade de dependência somente leitura representada por esse identificador de propriedade de dependência.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Confira também