DependencyProperty.RegisterAttachedReadOnly Methode

Definitie

Registreert een alleen-lezen gekoppelde eigenschap.

Overloads

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

Registreert een alleen-lezen gekoppelde eigenschap, met het opgegeven eigenschapstype, het type eigenaar en de metagegevens van de eigenschap.

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

Registreert een alleen-lezen gekoppelde eigenschap, met het opgegeven eigenschapstype, het type eigenaar, de metagegevens van de eigenschap en een terugbelactie voor validatie.

RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata)

Registreert een alleen-lezen gekoppelde eigenschap, met het opgegeven eigenschapstype, het type eigenaar en de metagegevens van de eigenschap.

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

Parameters

name
String

De naam van de afhankelijkheidseigenschap die moet worden geregistreerd.

propertyType
Type

Het type eigendom.

ownerType
Type

Het type eigenaar dat de afhankelijkheidseigenschap registreert.

defaultMetadata
PropertyMetadata

Metagegevens van eigenschappen voor de afhankelijkheidseigenschap.

Retouren

Een afhankelijkheidseigenschapssleutel die moet worden gebruikt om de waarde van een statisch alleen-lezenveld in uw klasse in te stellen. Deze wordt vervolgens gebruikt om later naar de afhankelijkheidseigenschap te verwijzen.

Opmerkingen

Met deze methode wordt het type DependencyPropertyKeygeretourneerd, terwijl RegisterAttached het type DependencyPropertywordt geretourneerd. Normaal gesproken worden de sleutels die alleen-lezeneigenschappen vertegenwoordigen niet openbaar gemaakt, omdat de sleutels kunnen worden gebruikt om de waarde van de afhankelijkheidseigenschap in te stellen door aan te roepen SetValue(DependencyPropertyKey, Object). Uw klasseontwerp is van invloed op uw vereisten, maar het wordt meestal aanbevolen om de toegang en zichtbaarheid van alle DependencyPropertyKey onderdelen van uw code te beperken die nodig zijn om die afhankelijkheidseigenschap in te stellen als onderdeel van klasse- of toepassingslogica. Het wordt ook aanbevolen om een afhankelijkheidseigenschaps-id beschikbaar te maken voor de eigenschap alleen-lezen afhankelijkheden door de waarde van DependencyPropertyKey.DependencyProperty als veld public static readonly in uw klasse weer te geven.

Alleen-lezen gekoppelde eigenschappen zijn een zeldzaam scenario, omdat het primaire scenario voor een gekoppelde eigenschap het gebruik ervan is in XAML. Zonder een openbare setter kan een gekoppelde eigenschap niet worden ingesteld in de XAML-syntaxis.

Zie voor meer informatie over registratie DependencyPropertyvan afhankelijkheidseigenschappen.

RegisterAttached gebruiken voor het overnemen van afhankelijkheidseigenschappen van waarde

Een bepaald scenario voor het registreren van een afhankelijkheidseigenschap zoals gekoppeld, is het ondersteunen van overname van eigenschapswaarden. U moet waarde-overnemende afhankelijkheidseigenschappen registreren met RegisterAttached zelfs als de klasse toegangsbeheerobjecten voor eigenschappen definieert die de afhankelijkheidseigenschap beschikbaar maken, en zelfs als u niet van plan bent get* en set* statische methoden beschikbaar te maken om echte gekoppelde eigenschapstoegangsors te bieden. Hoewel overname van eigenschapswaarden kan werken voor niet-gekoppelde afhankelijkheidseigenschappen, is het overnamegedrag voor een niet-gekoppelde eigenschap via bepaalde elementgrenzen in de runtimestructuur niet gedefinieerd. Als u de eigenschap registreert als gekoppeld, wordt de gekoppelde eigenschap effectief een globale eigenschap aan het eigenschappensysteem en wordt gegarandeerd dat de overname van eigenschapswaarden over alle grenzen in een elementstructuur werkt. Gebruik altijd RegisterAttached om eigenschappen te registreren waar u Inherits opgeeft in de metagegevens. Zie Overname van eigenschapswaarde voor meer informatie.

Van toepassing op

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

Registreert een alleen-lezen gekoppelde eigenschap, met het opgegeven eigenschapstype, het type eigenaar, de metagegevens van de eigenschap en een terugbelactie voor validatie.

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

Parameters

name
String

De naam van de afhankelijkheidseigenschap die moet worden geregistreerd.

propertyType
Type

Het type eigendom.

ownerType
Type

Het type eigenaar dat de afhankelijkheidseigenschap registreert.

defaultMetadata
PropertyMetadata

Metagegevens van eigenschappen voor de afhankelijkheidseigenschap.

validateValueCallback
ValidateValueCallback

Een verwijzing naar een door de gebruiker gemaakte callback die een aangepaste validatie van de waarde van de afhankelijkheidseigenschap moet uitvoeren buiten typische typevalidatie.

Retouren

Een afhankelijkheidseigenschapssleutel die moet worden gebruikt om de waarde van een statisch alleen-lezenveld in uw klasse in te stellen, dat vervolgens wordt gebruikt om te verwijzen naar de afhankelijkheidseigenschap.

Opmerkingen

Met deze methode wordt het type DependencyPropertyKeygeretourneerd, terwijl RegisterAttached het type DependencyPropertywordt geretourneerd. Normaal gesproken zijn de sleutels die het type DependencyPropertyvertegenwoordigen. Normaal gesproken worden de sleutels die alleen-lezeneigenschappen vertegenwoordigen niet openbaar gemaakt, omdat de sleutels kunnen worden gebruikt om de waarde van de afhankelijkheidseigenschap in te stellen door aan te roepen SetValue(DependencyPropertyKey, Object). Uw klasseontwerp is van invloed op uw vereisten, maar het wordt meestal aanbevolen om de toegang en zichtbaarheid van alle DependencyPropertyKey onderdelen van uw code te beperken die nodig zijn om die afhankelijkheidseigenschap in te stellen als onderdeel van klasse- of toepassingslogica. Het wordt ook aanbevolen om een afhankelijkheidseigenschaps-id beschikbaar te maken voor de eigenschap alleen-lezen afhankelijkheden door de waarde van DependencyPropertyKey.DependencyProperty als veld public static readonly in uw klasse weer te geven.

Alleen-lezen gekoppelde eigenschappen zijn een zeldzaam scenario, omdat het primaire scenario voor een gekoppelde eigenschap het gebruik ervan is in XAML. Zonder een openbare setter kan een gekoppelde eigenschap niet worden ingesteld in de XAML-syntaxis.

Zie voor meer informatie over registratie DependencyPropertyvan afhankelijkheidseigenschappen.

RegisterAttached gebruiken voor het overnemen van afhankelijkheidseigenschappen van waarde

Een bepaald scenario voor het registreren van een afhankelijkheidseigenschap, zoals gekoppeld, is het ondersteunen van overname van Register eigenschapswaarden. U moet waarde-overnemende afhankelijkheidseigenschappen registreren met RegisterAttached zelfs als de klasse toegangsbeheerobjecten voor eigenschappen definieert die de afhankelijkheidseigenschap beschikbaar maken, en zelfs als u niet van plan bent get* en set* statische methoden beschikbaar te maken om echte gekoppelde eigenschapstoegangsors te bieden. Hoewel overname van eigenschapswaarden kan werken voor niet-gekoppelde afhankelijkheidseigenschappen, is het overnamegedrag voor een niet-gekoppelde eigenschap via bepaalde elementgrenzen in de runtimestructuur niet gedefinieerd. Als u de eigenschap registreert als gekoppeld, wordt de gekoppelde eigenschap effectief een globale eigenschap aan het eigenschappensysteem en wordt gegarandeerd dat de overname van eigenschapswaarden over alle grenzen in een elementstructuur werkt. Gebruik altijd RegisterAttached om eigenschappen te registreren waar u Inherits opgeeft in de metagegevens. Zie Overname van eigenschapswaarde voor meer informatie.

Van toepassing op