Compartilhar via


DependencyProperty.RegisterReadOnly Método

Definição

Registra a propriedade de dependência como uma propriedade de dependência somente leitura.

Sobrecargas

RegisterReadOnly(String, Type, Type, PropertyMetadata)

Registra uma propriedade de dependência somente leitura com o tipo da propriedade, tipo de proprietário e metadados de propriedade especificados.

RegisterReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback)

Registra uma propriedade de dependência somente leitura com o tipo de propriedade, tipo de proprietário, metadados de propriedade e retorno de chamada especificados.

RegisterReadOnly(String, Type, Type, PropertyMetadata)

Registra uma propriedade de dependência somente leitura com o tipo da propriedade, tipo de proprietário e metadados de propriedade especificados.

public:
 static System::Windows::DependencyPropertyKey ^ RegisterReadOnly(System::String ^ name, Type ^ propertyType, Type ^ ownerType, System::Windows::PropertyMetadata ^ typeMetadata);
public static System.Windows.DependencyPropertyKey RegisterReadOnly (string name, Type propertyType, Type ownerType, System.Windows.PropertyMetadata typeMetadata);
static member RegisterReadOnly : string * Type * Type * System.Windows.PropertyMetadata -> System.Windows.DependencyPropertyKey
Public Shared Function RegisterReadOnly (name As String, propertyType As Type, ownerType As Type, typeMetadata As PropertyMetadata) As DependencyPropertyKey

Parâmetros

name
String

O nome da propriedade de dependência a ser registrada.

propertyType
Type

O tipo da propriedade.

ownerType
Type

O tipo de proprietário que está registrando a propriedade de dependência.

typeMetadata
PropertyMetadata

Os metadados de propriedade da propriedade de dependência.

Retornos

DependencyPropertyKey

Uma chave de propriedade de dependência que deve ser usada para definir o valor de um campo somente leitura estático na sua classe, que então é usado para fazer referência à propriedade de dependência.

Exemplos

O exemplo a seguir registra uma AquariumSize propriedade de dependência como somente leitura. O exemplo define como uma chave interna (para que outras AquariumSizeKey classes no assembly possam substituir metadados) e expõe o identificador de propriedade de dependência com base nessa chave como AquariumSizeProperty. Além disso, um wrapper é criado para AquariumSize, com apenas um acessador get.

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

Esse método retorna o tipo DependencyPropertyKey, enquanto RegisterAttached retorna o tipo DependencyProperty. Normalmente, as chaves que representam propriedades somente leitura não são tornadas públicas, pois as chaves podem ser usadas para definir o valor da propriedade de dependência chamando SetValue(DependencyPropertyKey, Object). Seu design de classe afetará seus requisitos, mas geralmente é recomendável limitar o acesso e a visibilidade de qualquer DependencyPropertyKey uma apenas para as partes do código necessárias para definir essa propriedade de dependência como parte da lógica de classe ou aplicativo. Também é recomendável que você exponha um identificador de propriedade de dependência para a propriedade de dependência somente leitura, expondo o valor de DependencyPropertyKey.DependencyProperty como um public static readonly campo em sua classe.

As propriedades de dependência somente leitura são um cenário bastante típico tanto na API existente quanto para cenários de personalização, pois outros recursos do WPF podem exigir uma propriedade de dependência, mesmo que essa propriedade não se destine a ser ajustável pelos chamadores. Você pode usar o valor de uma propriedade de dependência somente leitura como base para outras operações do sistema de propriedades que usam uma propriedade de dependência, como basear uma Trigger propriedade de dependência em um estilo.

Para obter mais informações sobre o registro de propriedade de dependência, consulte DependencyProperty.

Aplica-se a

RegisterReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback)

Registra uma propriedade de dependência somente leitura com o tipo de propriedade, tipo de proprietário, metadados de propriedade e retorno de chamada especificados.

public:
 static System::Windows::DependencyPropertyKey ^ RegisterReadOnly(System::String ^ name, Type ^ propertyType, Type ^ ownerType, System::Windows::PropertyMetadata ^ typeMetadata, System::Windows::ValidateValueCallback ^ validateValueCallback);
public static System.Windows.DependencyPropertyKey RegisterReadOnly (string name, Type propertyType, Type ownerType, System.Windows.PropertyMetadata typeMetadata, System.Windows.ValidateValueCallback validateValueCallback);
static member RegisterReadOnly : string * Type * Type * System.Windows.PropertyMetadata * System.Windows.ValidateValueCallback -> System.Windows.DependencyPropertyKey
Public Shared Function RegisterReadOnly (name As String, propertyType As Type, ownerType As Type, typeMetadata As PropertyMetadata, validateValueCallback As ValidateValueCallback) As DependencyPropertyKey

Parâmetros

name
String

O nome da propriedade de dependência a ser registrada.

propertyType
Type

O tipo da propriedade.

ownerType
Type

O tipo de proprietário que está registrando a propriedade de dependência.

typeMetadata
PropertyMetadata

Os metadados de propriedade da propriedade de dependência.

validateValueCallback
ValidateValueCallback

Uma referência a um retorno de chamada criado pelo usuário que deve executar uma validação personalizada do valor da propriedade de dependência além da validação de tipo comum.

Retornos

DependencyPropertyKey

Uma chave de propriedade de dependência que deve ser usada para definir o valor de um campo estático somente leitura na classe, que é então usado para referenciar à propriedade de dependência posteriormente.

Comentários

Esse método retorna o tipo DependencyPropertyKey, enquanto RegisterAttached retorna o tipo DependencyProperty. Normalmente, as chaves que representam propriedades somente leitura não são tornadas públicas, pois as chaves podem ser usadas para definir o valor da propriedade de dependência chamando SetValue(DependencyPropertyKey, Object). Seu design de classe afetará seus requisitos, mas geralmente é recomendável limitar o acesso e a visibilidade de qualquer DependencyPropertyKey uma apenas para as partes do código necessárias para definir essa propriedade de dependência como parte da lógica de classe ou aplicativo. Também é recomendável que você exponha um identificador de propriedade de dependência para a propriedade de dependência somente leitura, expondo o valor de DependencyPropertyKey.DependencyProperty como um public static readonly campo em sua classe.

As propriedades de dependência somente leitura são um cenário bastante típico. Você pode usar o valor de uma propriedade de dependência somente leitura como base para outras operações do sistema de propriedades que usam uma propriedade de dependência, como basear uma Trigger propriedade de dependência em um estilo.

Para obter mais informações sobre o registro de propriedade de dependência, consulte DependencyProperty.

A validação em uma propriedade de dependência somente leitura pode ser menos importante. O nível de acesso não público especificado para a chave reduz a probabilidade de entrada arbitrária inválida.

Aplica-se a