DependencyProperty.RegisterAttachedReadOnly Metodo

Definizione

Registra un proprietà associata di sola lettura.Registers a read-only attached property.

Overload

RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata)

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

RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback)

Registra una proprietà associata di sola lettura, con il tipo della proprietà, il tipo del proprietario, i metadati della proprietà e un callback di convalida specificati.Registers a read-only attached property, with the specified property type, owner type, property metadata, and a validation callback.

RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata)

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

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

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.

defaultMetadata
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 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à associate di sola lettura sono uno scenario raro, perché lo scenario principale per una proprietà associata è il suo utilizzo in XAMLXAML.Read-only attached properties are a rare scenario, because the primary scenario for an attached property is its use in XAMLXAML. Senza un setter pubblico non è possibile impostare una proprietà associata nella sintassi XAMLXAML.Without a public setter, an attached property cannot be set in XAMLXAML syntax.

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

Usare RegisterAttached per le proprietà di dipendenza che ereditano il valoreUse RegisterAttached for Value-inheriting Dependency Properties

Un particolare scenario per la registrazione di una proprietà di dipendenza come allegato è il supporto dell'ereditarietà del valore della proprietà.One particular scenario for registering a dependency property as attached is to support property value inheritance. È necessario registrare le proprietà di dipendenza che ereditano il valore con RegisterAttached anche se la classe definisce le funzioni di accesso del wrapper di proprietà che espongono la proprietà di dipendenza e anche se non si prevede di esporre metodi get * e set * statici per fornire funzioni di accesso al supporto delle proprietà associate true.You should register value-inheriting dependency properties with RegisterAttached even if the class defines property wrapper accessors that expose the dependency property, and even if you do not intend to expose Get* and Set* static methods to provide true attached property support accessors. Sebbene l'ereditarietà del valore della proprietà possa sembrare funzionante per le proprietà di dipendenza non associate, il comportamento di ereditarietà per una proprietà non associata attraverso determinati limiti degli elementi nell'albero di runtime non è definito.Although property value inheritance might appear to work for nonattached dependency properties, the inheritance behavior for a nonattached property through certain element boundaries in the runtime tree is undefined. La registrazione della proprietà come connessa rende la proprietà associata una proprietà globale al sistema di proprietà e assicura che l'ereditarietà del valore della proprietà funzioni in tutti i limiti di un albero degli elementi.Registering the property as attached effectively makes the attached property a global property to the property system, and assures that property value inheritance works across all boundaries in an element tree. Usare sempre RegisterAttached per registrare le proprietà in cui si specifica Inherits nei metadati.Always use RegisterAttached to register properties where you specify Inherits in the metadata. Per altre informazioni, vedere Ereditarietà del valore della proprietà.For more information, see Property Value Inheritance.

RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback)

Registra una proprietà associata di sola lettura, con il tipo della proprietà, il tipo del proprietario, i metadati della proprietà e un callback di convalida specificati.Registers a read-only attached property, with the specified property type, owner type, property metadata, and a validation callback.

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

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.

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

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 il tipo DependencyProperty.Typically, the keys that represent 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à associate di sola lettura sono uno scenario raro, perché lo scenario principale per una proprietà associata è il suo utilizzo in XAMLXAML.Read-only attached properties are a rare scenario, because the primary scenario for an attached property is its use in XAMLXAML. Senza un setter pubblico non è possibile impostare una proprietà associata nella sintassi XAMLXAML.Without a public setter, an attached property cannot be set in XAMLXAML syntax.

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

Usare RegisterAttached per le proprietà di dipendenza che ereditano il valoreUse RegisterAttached for Value-inheriting Dependency Properties

Uno scenario particolare per la registrazione di una proprietà di dipendenza come allegato anziché Register consiste nel supportare l'ereditarietà del valore della proprietà.One particular scenario for registering a dependency property as attached instead of Register is to support property value inheritance. È necessario registrare le proprietà di dipendenza che ereditano il valore con RegisterAttached anche se la classe definisce le funzioni di accesso del wrapper di proprietà che espongono la proprietà di dipendenza e anche se non si prevede di esporre metodi get * e set * statici per fornire funzioni di accesso al supporto delle proprietà associate true.You should register value-inheriting dependency properties with RegisterAttached even if the class defines property wrapper accessors that expose the dependency property, and even if you do not intend to expose Get* and Set* static methods to provide true attached property support accessors. Sebbene l'ereditarietà del valore della proprietà possa sembrare funzionante per le proprietà di dipendenza non associate, il comportamento di ereditarietà per una proprietà non associata attraverso determinati limiti degli elementi nell'albero di runtime non è definito.Although property value inheritance might appear to work for nonattached dependency properties, the inheritance behavior for a nonattached property through certain element boundaries in the runtime tree is undefined. La registrazione della proprietà come connessa rende la proprietà associata una proprietà globale al sistema di proprietà e assicura che l'ereditarietà del valore della proprietà funzioni in tutti i limiti di un albero degli elementi.Registering the property as attached effectively makes the attached property a global property to the property system, and assures that property value inheritance works across all boundaries in an element tree. Usare sempre RegisterAttached per registrare le proprietà in cui si specifica Inherits nei metadati.Always use RegisterAttached to register properties where you specify Inherits in the metadata. Per altre informazioni, vedere Ereditarietà del valore della proprietà.For more information, see Property Value Inheritance.

Si applica a