DependencyProperty.RegisterReadOnly Método

Definição

Registra a propriedade de dependência como uma propriedade de dependência somente leitura.Registers a dependency property as a read-only dependency property.

Sobrecargas

RegisterReadOnly(String, Type, Type, PropertyMetadata)

Registra uma propriedade de dependência somente leitura com o tipo da propriedade, tipo de proprietário e metadados de propriedade especificados.Registers a read-only dependency property, with the specified property type, owner type, and property metadata.

RegisterReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback)

Registra uma propriedade de dependência somente leitura com o tipo de propriedade, tipo de proprietário, metadados de propriedade e retorno de chamada especificados.Registers a read-only dependency property, with the specified property type, owner type, property metadata, and a validation callback.

RegisterReadOnly(String, Type, Type, PropertyMetadata)

Registra uma propriedade de dependência somente leitura com o tipo da propriedade, tipo de proprietário e metadados de propriedade especificados.Registers a read-only dependency property, with the specified property type, owner type, and property metadata.

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 ser registrada.The name of the dependency property to register.

propertyType
Type

O tipo da propriedade.The type of the property.

ownerType
Type

O tipo de proprietário que está registrando a propriedade de dependência.The owner type that is registering the dependency property.

typeMetadata
PropertyMetadata

Os metadados de propriedade da propriedade de dependência.Property metadata for the dependency property.

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.A dependency property key that should be used to set the value of a static read-only field in your class, which is then used to reference the dependency property.

Exemplos

O exemplo a seguir registra uma propriedade de dependência AquariumSize como somente leitura.The following example registers an AquariumSize dependency property as read-only. O exemplo define AquariumSizeKey como uma chave interna (para que outras classes no assembly possam substituir os metadados) e expõe o identificador de propriedade de dependência com base nessa chave como AquariumSizeProperty.The example defines AquariumSizeKey as an internal key (so that other classes in the assembly could override metadata) and exposes the dependency property identifier based on that key as AquariumSizeProperty. Além disso, um wrapper é criado para AquariumSize, com apenas um acessador get.Also, a wrapper is created for AquariumSize, with only a get accessor.

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

Comentários

Esse método retorna o tipo DependencyPropertyKey, enquanto RegisterAttached retorna o tipo DependencyProperty.This method returns the type DependencyPropertyKey, whereas RegisterAttached returns the type 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).Typically, the keys that represent read-only properties are not made public, because the keys can be used to set the dependency property value by calling SetValue(DependencyPropertyKey, Object). Seu design de classe afetará seus requisitos, mas geralmente é recomendável limitar o acesso e a visibilidade de qualquer DependencyPropertyKey apenas a essas partes do seu código que são necessárias para definir essa propriedade de dependência como parte da lógica da classe ou do aplicativo.Your class design will affect your requirements, but it is generally recommended to limit the access and visibility of any DependencyPropertyKey to only those parts of your code that are necessary to set that dependency property as part of class or application logic. Também é recomendável expor um identificador de propriedade de dependência para a propriedade de dependência somente leitura, expondo o valor de DependencyPropertyKey.DependencyProperty como um campo de public static readonly em sua classe.It is also recommended that you expose a dependency property identifier for the read-only dependency property, by exposing the value of DependencyPropertyKey.DependencyProperty as a public static readonly field on your class.

As propriedades de dependência somente leitura são um cenário bastante típico na API existente e em cenários de personalização, pois outros recursos de WPFWPF podem exigir uma propriedade de dependência, mesmo se essa propriedade não tiver a intenção de ser configurável por chamadores.Read-only dependency properties are a fairly typical scenario both in the existing API and for customization scenarios, because other WPFWPF features might require a dependency property even if that property is not intended to be settable by callers. Você pode usar o valor de uma propriedade de dependência somente leitura como a base para outras operações do sistema de propriedades que usam uma propriedade de dependência, como basear um Trigger na propriedade de dependência em um estilo.You can use the value of a read-only dependency property as the basis for other property system operations that take a dependency property, such as basing a Trigger on the dependency property in a style.

Para obter mais informações sobre o registro de propriedade de dependência, consulte DependencyProperty.For more information on dependency property registration, see DependencyProperty.

RegisterReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback)

Registra uma propriedade de dependência somente leitura com o tipo de propriedade, tipo de proprietário, metadados de propriedade e retorno de chamada especificados.Registers a read-only dependency property, with the specified property type, owner type, property metadata, and a validation callback.

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 ser registrada.The name of the dependency property to register.

propertyType
Type

O tipo da propriedade.The type of the property.

ownerType
Type

O tipo de proprietário que está registrando a propriedade de dependência.The owner type that is registering the dependency property.

typeMetadata
PropertyMetadata

Os metadados de propriedade da propriedade de dependência.Property metadata for the dependency property.

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.A reference to a user-created callback that should perform any custom validation of the dependency property value beyond typical type validation.

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.A dependency property key that should be used to set the value of a static read-only field in your class, which is then used to reference the dependency property later.

Comentários

Esse método retorna o tipo DependencyPropertyKey, enquanto RegisterAttached retorna o tipo DependencyProperty.This method returns the type DependencyPropertyKey, whereas RegisterAttached returns the type 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).Typically, the keys that represent read-only properties are not made public, because the keys can be used to set the dependency property value by calling SetValue(DependencyPropertyKey, Object). Seu design de classe afetará seus requisitos, mas geralmente é recomendável limitar o acesso e a visibilidade de qualquer DependencyPropertyKey apenas a essas partes do seu código que são necessárias para definir essa propriedade de dependência como parte da lógica da classe ou do aplicativo.Your class design will affect your requirements, but it is generally recommended to limit the access and visibility of any DependencyPropertyKey to only those parts of your code that are necessary to set that dependency property as part of class or application logic. Também é recomendável expor um identificador de propriedade de dependência para a propriedade de dependência somente leitura, expondo o valor de DependencyPropertyKey.DependencyProperty como um campo de public static readonly em sua classe.It is also recommended that you expose a dependency property identifier for the read-only dependency property, by exposing the value of DependencyPropertyKey.DependencyProperty as a public static readonly field on your class.

As propriedades de dependência somente leitura são um cenário bastante típico.Read-only dependency properties are a fairly typical scenario. Você pode usar o valor de uma propriedade de dependência somente leitura como a base para outras operações do sistema de propriedades que usam uma propriedade de dependência, como basear um Trigger na propriedade de dependência em um estilo.You can use the value of a read-only dependency property as the basis for other property system operations that take a dependency property, such as basing a Trigger on the dependency property in a style.

Para obter mais informações sobre o registro de propriedade de dependência, consulte DependencyProperty.For more information on dependency property registration, see DependencyProperty.

A validação em uma propriedade de dependência somente leitura pode ser menos importante.Validation on a read-only dependency property might be less important. O nível de acesso não público especificado para a chave reduz a probabilidade de entrada arbitrária inválida.The nonpublic access level you specify for the key reduces the likelihood for arbitrary invalid input.

Aplica-se a