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
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
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
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.