DependencyProperty.RegisterAttachedReadOnly Método

Definição

Registra uma propriedade anexada somente leitura.

Sobrecargas

Nome Description
RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata)

Registra uma propriedade anexada somente leitura, com o tipo de propriedade, o tipo de proprietário e os metadados de propriedade especificados.

RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback)

Registra uma propriedade anexada somente leitura, com o tipo de propriedade especificado, tipo de proprietário, metadados de propriedade e um retorno de chamada de validação.

RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata)

Registra uma propriedade anexada somente leitura, com o tipo de propriedade, o tipo de proprietário e os metadados de propriedade especificados.

public:
 static System::Windows::DependencyPropertyKey ^ RegisterAttachedReadOnly(System::String ^ name, Type ^ propertyType, Type ^ ownerType, System::Windows::PropertyMetadata ^ defaultMetadata);
public static System.Windows.DependencyPropertyKey RegisterAttachedReadOnly(string name, Type propertyType, Type ownerType, System.Windows.PropertyMetadata defaultMetadata);
static member RegisterAttachedReadOnly : string * Type * Type * System.Windows.PropertyMetadata -> System.Windows.DependencyPropertyKey
Public Shared Function RegisterAttachedReadOnly (name As String, propertyType As Type, ownerType As Type, defaultMetadata 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.

defaultMetadata
PropertyMetadata

Metadados de propriedade para a propriedade de dependência.

Retornos

Uma chave de propriedade de dependência que deve ser usada para definir o valor de um campo somente leitura estático em sua classe, que é usada para referenciar a 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 uma DependencyPropertyKey para apenas 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 anexadas somente leitura são um cenário raro, pois o cenário principal de uma propriedade anexada é seu uso em XAML. Sem um setter público, uma propriedade anexada não pode ser definida na sintaxe XAML.

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

Usar RegisterAttached para propriedades de dependência que herdam valor

Um cenário específico para registrar uma propriedade de dependência como anexada é dar suporte à herança de valor de propriedade. Você deve registrar propriedades de dependência que herdam valor mesmo RegisterAttached que a classe defina acessadores de wrapper de propriedade que expõem a propriedade de dependência e, mesmo que você não pretenda expor métodos estáticos Get* e Set* para fornecer verdadeiros acessadores de suporte à propriedade anexada. Embora a herança do valor da propriedade possa parecer funcionar para propriedades de dependência não desnatadas, o comportamento de herança de uma propriedade não desnatada por meio de determinados limites de elemento na árvore de runtime é indefinido. Registrar a propriedade como anexada efetivamente torna a propriedade anexada uma propriedade global ao sistema de propriedades e garante que a herança do valor da propriedade funcione em todos os limites em uma árvore de elementos. Sempre use RegisterAttached para registrar propriedades onde você especifica Inherits nos metadados. Para obter mais informações, consulte Herança do Valor da Propriedade.

Aplica-se a

RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback)

Registra uma propriedade anexada somente leitura, com o tipo de propriedade especificado, tipo de proprietário, metadados de propriedade e um retorno de chamada de validação.

public:
 static System::Windows::DependencyPropertyKey ^ RegisterAttachedReadOnly(System::String ^ name, Type ^ propertyType, Type ^ ownerType, System::Windows::PropertyMetadata ^ defaultMetadata, System::Windows::ValidateValueCallback ^ validateValueCallback);
public static System.Windows.DependencyPropertyKey RegisterAttachedReadOnly(string name, Type propertyType, Type ownerType, System.Windows.PropertyMetadata defaultMetadata, System.Windows.ValidateValueCallback validateValueCallback);
static member RegisterAttachedReadOnly : string * Type * Type * System.Windows.PropertyMetadata * System.Windows.ValidateValueCallback -> System.Windows.DependencyPropertyKey
Public Shared Function RegisterAttachedReadOnly (name As String, propertyType As Type, ownerType As Type, defaultMetadata 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.

defaultMetadata
PropertyMetadata

Metadados de propriedade para a propriedade de dependência.

validateValueCallback
ValidateValueCallback

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

Retornos

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

Comentários

Esse método retorna o tipo DependencyPropertyKey, enquanto RegisterAttached retorna o tipo DependencyProperty. Normalmente, as chaves que representam 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 uma DependencyPropertyKey para apenas 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 anexadas somente leitura são um cenário raro, pois o cenário principal de uma propriedade anexada é seu uso em XAML. Sem um setter público, uma propriedade anexada não pode ser definida na sintaxe XAML.

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

Usar RegisterAttached para propriedades de dependência que herdam valor

Um cenário específico para registrar uma propriedade de dependência como anexada em vez disso é dar suporte à herança de valor de Register propriedade. Você deve registrar propriedades de dependência que herdam valor mesmo RegisterAttached que a classe defina acessadores de wrapper de propriedade que expõem a propriedade de dependência e, mesmo que você não pretenda expor métodos estáticos Get* e Set* para fornecer verdadeiros acessadores de suporte à propriedade anexada. Embora a herança do valor da propriedade possa parecer funcionar para propriedades de dependência não desnatadas, o comportamento de herança de uma propriedade não desnatada por meio de determinados limites de elemento na árvore de runtime é indefinido. Registrar a propriedade como anexada efetivamente torna a propriedade anexada uma propriedade global ao sistema de propriedades e garante que a herança do valor da propriedade funcione em todos os limites em uma árvore de elementos. Sempre use RegisterAttached para registrar propriedades onde você especifica Inherits nos metadados. Para obter mais informações, consulte Herança do Valor da Propriedade.

Aplica-se a