DependencyProperty.RegisterAttachedReadOnly Metod

Definition

Registrerar en skrivskyddad bifogad egenskap.

Överlagringar

Name Description
RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata)

Registrerar en skrivskyddad bifogad egenskap med den angivna egenskapstypen, ägartyp och egenskapsmetadata.

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

Registrerar en skrivskyddad bifogad egenskap med den angivna egenskapstypen, ägartyp, egenskapsmetadata och ett valideringsåteranrop.

RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata)

Registrerar en skrivskyddad bifogad egenskap med den angivna egenskapstypen, ägartyp och egenskapsmetadata.

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

Parametrar

name
String

Namnet på den beroendeegenskap som ska registreras.

propertyType
Type

Egenskapens typ.

ownerType
Type

Den ägartyp som registrerar beroendeegenskapen.

defaultMetadata
PropertyMetadata

Egenskapsmetadata för beroendeegenskapen.

Returer

En beroendeegenskapsnyckel som ska användas för att ange värdet för ett statiskt skrivskyddat fält i klassen, som sedan används för att referera till beroendeegenskapen senare.

Kommentarer

Den här metoden returnerar typen DependencyPropertyKey, medan RegisterAttached returnerar typen DependencyProperty. Vanligtvis görs inte nycklarna som representerar skrivskyddade egenskaper offentliga eftersom nycklarna kan användas för att ange värdet för beroendeegenskapen genom att anropa SetValue(DependencyPropertyKey, Object). Klassdesignen påverkar dina krav, men vi rekommenderar vanligtvis att du begränsar åtkomsten och synligheten för alla DependencyPropertyKey till endast de delar av koden som krävs för att ange den beroendeegenskapen som en del av klass- eller programlogik. Vi rekommenderar också att du exponerar en beroendeegenskapsidentifierare för den skrivskyddade beroendeegenskapen genom att exponera värdet DependencyPropertyKey.DependencyProperty för som ett public static readonly fält i klassen.

Skrivskyddade bifogade egenskaper är ett sällsynt scenario eftersom det primära scenariot för en bifogad egenskap är dess användning i XAML. Utan en offentlig setter kan inte en bifogad egenskap anges i XAML-syntax.

Mer information om registrering av beroendeegenskap finns i DependencyProperty.

Använda RegisterAttached för värde-ärver beroendeegenskaper

Ett särskilt scenario för att registrera en beroendeegenskap som bifogad är att stödja arv av egenskapsvärde. Du bör registrera värde-ärvande beroendeegenskaper med RegisterAttached även om klassen definierar egenskapshanteringsåtkomster som exponerar beroendeegenskapen, och även om du inte tänker exponera statiska metoder för Get* och Set* för att tillhandahålla true attached property support accessors. Arv av egenskapsvärde kan verka fungera för icke-anslutna beroendeegenskaper, men arvsbeteendet för en icke-kopplat egenskap via vissa elementgränser i körningsträdet är odefinierat. Genom att registrera egenskapen som ansluten blir den anslutna egenskapen en global egenskap till egenskapssystemet och säkerställer att arv av egenskapsvärde fungerar över alla gränser i ett elementträd. Använd alltid RegisterAttached för att registrera egenskaper där du anger Inherits i metadata. Mer information finns i Arv av egenskapsvärde.

Gäller för

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

Registrerar en skrivskyddad bifogad egenskap med den angivna egenskapstypen, ägartyp, egenskapsmetadata och ett valideringsåteranrop.

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

Parametrar

name
String

Namnet på den beroendeegenskap som ska registreras.

propertyType
Type

Egenskapens typ.

ownerType
Type

Den ägartyp som registrerar beroendeegenskapen.

defaultMetadata
PropertyMetadata

Egenskapsmetadata för beroendeegenskapen.

validateValueCallback
ValidateValueCallback

En referens till en användarskapad motringning som ska utföra en anpassad validering av värdet för beroendeegenskap utöver typisk typverifiering.

Returer

En beroendeegenskapsnyckel som ska användas för att ange värdet för ett statiskt skrivskyddat fält i klassen, som sedan används för att referera till beroendeegenskapen.

Kommentarer

Den här metoden returnerar typen DependencyPropertyKey, medan RegisterAttached returnerar typen DependencyProperty. Vanligtvis är de nycklar som representerar typen DependencyProperty. Vanligtvis görs inte nycklarna som representerar skrivskyddade egenskaper offentliga eftersom nycklarna kan användas för att ange värdet för beroendeegenskapen genom att anropa SetValue(DependencyPropertyKey, Object). Klassdesignen påverkar dina krav, men vi rekommenderar vanligtvis att du begränsar åtkomsten och synligheten för alla DependencyPropertyKey till endast de delar av koden som krävs för att ange den beroendeegenskapen som en del av klass- eller programlogik. Vi rekommenderar också att du exponerar en beroendeegenskapsidentifierare för den skrivskyddade beroendeegenskapen genom att exponera värdet DependencyPropertyKey.DependencyProperty för som ett public static readonly fält i klassen.

Skrivskyddade bifogade egenskaper är ett sällsynt scenario eftersom det primära scenariot för en bifogad egenskap är dess användning i XAML. Utan en offentlig setter kan inte en bifogad egenskap anges i XAML-syntax.

Mer information om registrering av beroendeegenskap finns i DependencyProperty.

Använda RegisterAttached för värde-ärver beroendeegenskaper

Ett särskilt scenario för att registrera en beroendeegenskap som kopplad i stället för är att stödja arv av Register egenskapsvärde. Du bör registrera värde-ärvande beroendeegenskaper med RegisterAttached även om klassen definierar egenskapshanteringsåtkomster som exponerar beroendeegenskapen, och även om du inte tänker exponera statiska metoder för Get* och Set* för att tillhandahålla true attached property support accessors. Arv av egenskapsvärde kan verka fungera för icke-anslutna beroendeegenskaper, men arvsbeteendet för en icke-kopplat egenskap via vissa elementgränser i körningsträdet är odefinierat. Genom att registrera egenskapen som ansluten blir den anslutna egenskapen en global egenskap till egenskapssystemet och säkerställer att arv av egenskapsvärde fungerar över alla gränser i ett elementträd. Använd alltid RegisterAttached för att registrera egenskaper där du anger Inherits i metadata. Mer information finns i Arv av egenskapsvärde.

Gäller för