DependencyProperty.RegisterAttachedReadOnly Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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.