DependencyProperty.RegisterReadOnly Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Regista uma propriedade de dependência como propriedade de dependência apenas de leitura.
Sobrecargas
| Name | Description |
|---|---|
| RegisterReadOnly(String, Type, Type, PropertyMetadata) |
Regista uma propriedade de dependência apenas de leitura, com o tipo de propriedade especificado, o tipo de proprietário e os metadados da propriedade. |
| RegisterReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback) |
Regista uma propriedade de dependência apenas de leitura, com o tipo de propriedade especificado, tipo de proprietário, metadados de propriedade e um callback de validação. |
RegisterReadOnly(String, Type, Type, PropertyMetadata)
Regista uma propriedade de dependência apenas de leitura, com o tipo de propriedade especificado, o tipo de proprietário e os metadados da propriedade.
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 registar.
- propertyType
- Type
O tipo de propriedade.
- ownerType
- Type
O tipo de proprietário que está a registar a propriedade de dependência.
- typeMetadata
- PropertyMetadata
Metadados da propriedade para a propriedade de dependência.
Devoluções
Uma chave de propriedade de dependência que deve ser usada para definir o valor de um campo estático de apenas leitura na sua classe, que depois é usado para referenciar a propriedade de dependência.
Exemplos
O exemplo seguinte regista uma AquariumSize propriedade de dependência como apenas leitura. O exemplo define AquariumSizeKey como uma chave interna (para que outras classes na assembly possam sobrepor metadados) e expõe o identificador de propriedade de dependência baseado nessa chave como AquariumSizeProperty. Além disso, é criado um wrapper para AquariumSize, com apenas um acessório 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
Observações
Este método devolve o tipo DependencyPropertyKey, enquanto RegisterAttached devolve o tipo DependencyProperty. Normalmente, as chaves que representam propriedades de somente leitura não são tornadas públicas, porque as chaves podem ser usadas para definir o valor da propriedade de dependência chamando SetValue(DependencyPropertyKey, Object). O design da tua classe afetará os requisitos, mas geralmente recomenda-se limitar o acesso e a visibilidade de qualquer uma DependencyPropertyKey apenas às partes do teu código que são necessárias para definir essa propriedade de dependência como parte da lógica de classes ou aplicações. Também se recomenda que exponha um identificador de propriedade de dependência para a propriedade de dependência de apenas leitura, expondo o valor de DependencyPropertyKey.DependencyProperty como campo public static readonly na sua classe.
As propriedades de dependência apenas de leitura são um cenário bastante típico tanto na API existente como em cenários de personalização, porque outras funcionalidades do WPF podem exigir uma propriedade de dependência mesmo que essa propriedade não seja destinada a ser resolvida pelos chamadores. Pode usar o valor de uma propriedade de dependência apenas de leitura como base para outras operações de sistemas de propriedades que assumem uma propriedade de dependência, como basear a Trigger na propriedade de dependência num estilo.
Para mais informações sobre o registo de propriedades por dependência, consulte DependencyProperty.
Aplica-se a
RegisterReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback)
Regista uma propriedade de dependência apenas de leitura, com o tipo de propriedade especificado, tipo de proprietário, metadados de propriedade e um callback de validação.
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 registar.
- propertyType
- Type
O tipo de propriedade.
- ownerType
- Type
O tipo de proprietário que está a registar a propriedade de dependência.
- typeMetadata
- PropertyMetadata
Metadados da propriedade para a propriedade de dependência.
- validateValueCallback
- ValidateValueCallback
Uma referência a um callback criado pelo utilizador que deve realizar qualquer validação personalizada do valor da propriedade de dependência para além da validação típica de tipos.
Devoluções
Uma chave de propriedade de dependência que deve ser usada para definir o valor de um campo estático de somente leitura na sua classe, que depois é usado para referenciar a propriedade de dependência mais tarde.
Observações
Este método devolve o tipo DependencyPropertyKey, enquanto RegisterAttached devolve o tipo DependencyProperty. Normalmente, as chaves que representam propriedades de somente leitura não são tornadas públicas, porque as chaves podem ser usadas para definir o valor da propriedade de dependência chamando SetValue(DependencyPropertyKey, Object). O design da tua classe afetará os requisitos, mas geralmente recomenda-se limitar o acesso e a visibilidade de qualquer uma DependencyPropertyKey apenas às partes do teu código que são necessárias para definir essa propriedade de dependência como parte da lógica de classes ou aplicações. Também se recomenda que exponha um identificador de propriedade de dependência para a propriedade de dependência de apenas leitura, expondo o valor de DependencyPropertyKey.DependencyProperty como campo public static readonly na sua classe.
Propriedades de dependência apenas de leitura são um cenário bastante típico. Pode usar o valor de uma propriedade de dependência apenas de leitura como base para outras operações de sistemas de propriedades que assumem uma propriedade de dependência, como basear a Trigger na propriedade de dependência num estilo.
Para mais informações sobre o registo de propriedades por dependência, consulte DependencyProperty.
A validação de uma propriedade de dependência de apenas leitura pode ser menos importante. O nível de acesso não público que especifica para a chave reduz a probabilidade de entrada inválida arbitrária.