Partilhar via


DependencyProperty.RegisterAttachedReadOnly Método

Definição

Registra uma propriedade anexada somente leitura.

Sobrecargas

RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata)

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

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

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

RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata)

Registra uma propriedade anexada somente leitura com o tipo de propriedade, tipo de proprietário e 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

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 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 anexadas somente leitura são um cenário raro, pois o cenário principal para uma propriedade anexada é seu uso no 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 herdadas de 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 herdadas de valor, RegisterAttached mesmo 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 acessadores de suporte à propriedade anexada verdadeiros. 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 desnaturada 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 em que 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, tipo de proprietário, metadados de propriedade e retorno de chamada especificados.

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

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 somente leitura estático na sua classe, que então é usado para fazer referência à 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 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 anexadas somente leitura são um cenário raro, pois o cenário principal para uma propriedade anexada é seu uso no 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 herdadas de 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 herdadas de valor, RegisterAttached mesmo 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 acessadores de suporte à propriedade anexada verdadeiros. 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 desnaturada 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 em que você especifica Inherits nos metadados. Para obter mais informações, consulte Herança do valor da propriedade.

Aplica-se a