DependencyProperty.RegisterReadOnly Metodo

Definizione

Registra una proprietà di dipendenza come proprietà di dipendenza di sola lettura.Registers a dependency property as a read-only dependency property.

Overload

RegisterReadOnly(String, Type, Type, PropertyMetadata)

Registra una proprietà di dipendenza di sola lettura con il tipo e i metadati della proprietà e il tipo di proprietario specificati.Registers a read-only dependency property, with the specified property type, owner type, and property metadata.

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

Registra una proprietà di dipendenza di sola lettura, con il tipo di proprietà, il tipo di proprietario, i metadati della proprietà e un callback di convalida specificati.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 una proprietà di dipendenza di sola lettura con il tipo e i metadati della proprietà e il tipo di proprietario specificati.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

Parametri

name
String

Nome della proprietà di dipendenza da registrare.The name of the dependency property to register.

propertyType
Type

Tipo della proprietà.The type of the property.

ownerType
Type

Tipo di proprietario che registra la proprietà di dipendenza.The owner type that is registering the dependency property.

typeMetadata
PropertyMetadata

Metadati della proprietà per la proprietà di dipendenza.Property metadata for the dependency property.

Restituisce

Chiave della proprietà di dipendenza che deve essere usata per impostare il valore di un campo statico di sola lettura nella classe, che viene quindi usata per fare riferimento alla proprietà di dipendenza.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.

Esempi

Nell'esempio seguente viene registrato un AquariumSize proprietà di dipendenza di sola lettura.The following example registers an AquariumSize dependency property as read-only. Nell'esempio viene definito AquariumSizeKey come chiave interna (in modo che altre classi nell'assembly possano eseguire l'override dei metadati) ed espone l'identificatore della proprietà di dipendenza in base a tale chiave come 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. Viene inoltre creato un wrapper per AquariumSizecon una sola funzione di accesso 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

Commenti

Questo metodo restituisce il tipo DependencyPropertyKey, mentre RegisterAttached restituisce il tipo DependencyProperty.This method returns the type DependencyPropertyKey, whereas RegisterAttached returns the type DependencyProperty. In genere, le chiavi che rappresentano le proprietà di sola lettura non sono rese pubbliche, perché le chiavi possono essere utilizzate per impostare il valore della proprietà di dipendenza chiamando 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). La progettazione delle classi influirà sui requisiti, ma è in genere consigliabile limitare l'accesso e la visibilità di qualsiasi DependencyPropertyKey solo alle parti del codice necessarie per impostare la proprietà di dipendenza come parte della logica dell'applicazione o della classe.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. Si consiglia inoltre di esporre un identificatore della proprietà di dipendenza per la proprietà di dipendenza di sola lettura, esponendo il valore di DependencyPropertyKey.DependencyProperty come campo public static readonly della 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.

Le proprietà di dipendenza di sola lettura sono uno scenario piuttosto comune sia nell'API esistente che negli scenari di personalizzazione, perché altre WPFWPF funzionalità potrebbero richiedere una proprietà di dipendenza anche se tale proprietà non può essere impostata dai chiamanti.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. È possibile utilizzare il valore di una proprietà di dipendenza di sola lettura come base per altre operazioni del sistema di proprietà che accettano una proprietà di dipendenza, ad esempio basando un Trigger sulla proprietà di dipendenza in uno stile.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.

Per ulteriori informazioni sulla registrazione delle proprietà di dipendenza, vedere DependencyProperty.For more information on dependency property registration, see DependencyProperty.

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

Registra una proprietà di dipendenza di sola lettura, con il tipo di proprietà, il tipo di proprietario, i metadati della proprietà e un callback di convalida specificati.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

Parametri

name
String

Nome della proprietà di dipendenza da registrare.The name of the dependency property to register.

propertyType
Type

Tipo della proprietà.The type of the property.

ownerType
Type

Tipo di proprietario che registra la proprietà di dipendenza.The owner type that is registering the dependency property.

typeMetadata
PropertyMetadata

Metadati della proprietà per la proprietà di dipendenza.Property metadata for the dependency property.

validateValueCallback
ValidateValueCallback

Riferimento a un callback creato dall'utente che deve eseguire qualsiasi convalida personalizzata del valore della proprietà di dipendenza oltre la normale convalida del tipo.A reference to a user-created callback that should perform any custom validation of the dependency property value beyond typical type validation.

Restituisce

Chiave della proprietà di dipendenza che deve essere usata per impostare il valore di un campo statico di sola lettura nella classe, che viene quindi usata per fare riferimento alla proprietà di dipendenza in un secondo momento.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.

Commenti

Questo metodo restituisce il tipo DependencyPropertyKey, mentre RegisterAttached restituisce il tipo DependencyProperty.This method returns the type DependencyPropertyKey, whereas RegisterAttached returns the type DependencyProperty. In genere, le chiavi che rappresentano le proprietà di sola lettura non sono rese pubbliche, perché le chiavi possono essere utilizzate per impostare il valore della proprietà di dipendenza chiamando 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). La progettazione delle classi influirà sui requisiti, ma è in genere consigliabile limitare l'accesso e la visibilità di qualsiasi DependencyPropertyKey solo alle parti del codice necessarie per impostare la proprietà di dipendenza come parte della logica dell'applicazione o della classe.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. Si consiglia inoltre di esporre un identificatore della proprietà di dipendenza per la proprietà di dipendenza di sola lettura, esponendo il valore di DependencyPropertyKey.DependencyProperty come campo public static readonly della 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.

Le proprietà di dipendenza di sola lettura sono uno scenario abbastanza comune.Read-only dependency properties are a fairly typical scenario. È possibile utilizzare il valore di una proprietà di dipendenza di sola lettura come base per altre operazioni del sistema di proprietà che accettano una proprietà di dipendenza, ad esempio basando un Trigger sulla proprietà di dipendenza in uno stile.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.

Per ulteriori informazioni sulla registrazione delle proprietà di dipendenza, vedere DependencyProperty.For more information on dependency property registration, see DependencyProperty.

La convalida su una proprietà di dipendenza di sola lettura può essere meno importante.Validation on a read-only dependency property might be less important. Il livello di accesso non pubblico specificato per la chiave riduce la probabilità di input arbitrario non valido.The nonpublic access level you specify for the key reduces the likelihood for arbitrary invalid input.

Si applica a