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 em 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 as 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 as DependencyPropertyKey chamadas SetValue em 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 poderão 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 estoá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 ruim.

Em vez de expor a chave em si, você deve expor o DependencyProperty valor do DependencyPropertyKey como um public static readonly DependencyProperty 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 uma DependencyProperty para muitas operações do sistema de propriedades.

Propriedades

DependencyProperty

Obtém o identificador de propriedade de dependência associado a este 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 Object atual.

(Herdado de Object)
OverrideMetadata(Type, PropertyMetadata)

Substitui os metadados de uma propriedade de dependência somente leitura que é 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