DependencyPropertyKey DependencyPropertyKey DependencyPropertyKey DependencyPropertyKey Class

Definição

Fornece um identificador de propriedade de dependência para acesso de gravação limitado a uma propriedade de dependência somente leitura.Provides a dependency property identifier for limited write access to a read-only dependency property.

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

Exemplos

O exemplo a seguir registra uma propriedade de dependência somente leitura e também usa a chave para dois fins em outros membros de classe: Implementando o "wrapper" Get e como o identificador de uma operação de determinação protegida que define o valor com base em cálculos de outros valores de propriedade.The following example registers a read-only dependency property, and also uses the key for two purposes in other class members: implementing the get "wrapper", and as the identifier for a protected determination operation that sets the value based on calculations of other property values.

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

DependencyPropertyKeyas instâncias são obtidas como o valor de retorno de uma chamada de registro de RegisterReadOnly propriedade RegisterAttachedReadOnlyde dependência usando os métodos ou.DependencyPropertyKey instances are obtained as the return value of a dependency property registration call using the methods RegisterReadOnly or RegisterAttachedReadOnly.

Os tipos que registram uma propriedade de dependência podem DependencyPropertyKey usar o em SetValue chamadas ClearValue para e que ajustam o valor da propriedade como parte da lógica de classe.The types that register a dependency property can use the DependencyPropertyKey in calls to SetValue and ClearValue that adjust the property's value as part of class logic. 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.If permitted by the access level of the key, related classes can use the key and the dependency property also. 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.For instance, you can declare the key as internal, and other types within the same assembly can also set that dependency property.

O DependencyPropertyKey registro de propriedade de dependência somente leitura não deve ser tornado público, pois expor a chave torna a propriedade configurável, o que anula o ponto de registrá-la como uma propriedade de dependência somente leitura.The DependencyPropertyKey returned by read-only dependency property registration should not be made public, because exposing the key makes the property settable, thus defeating the point of registering it as a read-only dependency property. Além disso, a exposição da chave causa uma incompatibilidade entre os comportamentos de propriedade de CLR (Common Language Runtime)common language runtime (CLR) dependência disponíveis e suas implementações de wrapper de propriedade, que é um design de classe inadequado.Also, exposing the key causes a mismatch between the available dependency property behaviors and its CLR (Common Language Runtime)common language runtime (CLR) property wrapper implementations, which is bad class design.

Em vez de expor a chave em si, você deve expor o DependencyProperty valor DependencyPropertyKey de como public static readonly DependencyProperty em sua classe.Instead of exposing the key itself, you should instead expose the DependencyProperty value of the DependencyPropertyKey as a public static readonlyDependencyProperty on your class. Isso permite que a propriedade retorne um identificador de propriedade de dependência válido para determinadas operações do sistema de propriedades, como a enumeração de valores definidos localmente.This enables the property to return a valid dependency property identifier for certain property system operations such as enumerating locally set values. No entanto, o identificador obtido não tem os recursos completos de um DependencyProperty para muitas operações do sistema de propriedades.However, the identifier thus obtained does not have the full capabilities of a DependencyProperty for many property system operations.

Propriedades

DependencyProperty DependencyProperty DependencyProperty DependencyProperty

Obtém o identificador de propriedade de dependência associado a este identificador de propriedade de dependência somente leitura especializado.Gets the dependency property identifier associated with this specialized read-only dependency property identifier.

Métodos

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Serve como a função de hash padrão.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Inherited from Object)
OverrideMetadata(Type, PropertyMetadata) OverrideMetadata(Type, PropertyMetadata) OverrideMetadata(Type, PropertyMetadata) OverrideMetadata(Type, PropertyMetadata)

Substitui os metadados de uma propriedade de dependência somente leitura que é representada por esse identificador de propriedade de dependência.Overrides the metadata of a read-only dependency property that is represented by this dependency property identifier.

ToString() ToString() ToString() ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object.

(Inherited from Object)

Aplica-se a

Veja também