DependencyProperty.AddOwner Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee voegt u een ander type toe als eigenaar van een afhankelijkheidseigenschap die al is geregistreerd bij een type.
Overloads
| Name | Description |
|---|---|
| AddOwner(Type) |
Voegt nog een type toe als eigenaar van een afhankelijkheidseigenschap die al is geregistreerd. |
| AddOwner(Type, PropertyMetadata) |
Hiermee voegt u een ander type toe als eigenaar van een afhankelijkheidseigenschap die al is geregistreerd, waarbij metagegevens van afhankelijkheden voor de afhankelijkheidseigenschap worden opgegeven, zoals deze bestaan op het opgegeven eigenaartype. |
AddOwner(Type)
Voegt nog een type toe als eigenaar van een afhankelijkheidseigenschap die al is geregistreerd.
public:
System::Windows::DependencyProperty ^ AddOwner(Type ^ ownerType);
public System.Windows.DependencyProperty AddOwner(Type ownerType);
member this.AddOwner : Type -> System.Windows.DependencyProperty
Public Function AddOwner (ownerType As Type) As DependencyProperty
Parameters
- ownerType
- Type
Het type dat moet worden toegevoegd als eigenaar van deze afhankelijkheidseigenschap.
Retouren
Een verwijzing naar de oorspronkelijke DependencyProperty id die de afhankelijkheidseigenschap identificeert. Deze id moet worden weergegeven door de klasse toe te voegen als veld public static readonly .
Opmerkingen
Met deze methode kan het eigenschapssysteem een afhankelijkheidseigenschap herkennen voor een type dat die specifieke afhankelijkheidseigenschap in eerste instantie niet heeft geregistreerd.
AddOwner Normaal gesproken wordt gebruikt om afhankelijkheidseigenschappen toe te voegen aan klassen die die afhankelijkheidseigenschap nog niet beschikbaar maken via overname van beheerde klassen (de overname van klassen zou ertoe leiden dat de wrapper-eigenschappen worden overgenomen door de afgeleide klasse, en dus algemene ledentabeltoegang tot de afhankelijkheidseigenschap al zou bieden). AddOwner hiermee kan het eigenschapssysteem een afhankelijkheidseigenschap herkennen voor een type dat die afhankelijkheidseigenschap in eerste instantie niet heeft geregistreerd.
Deze handtekening staat het opgeven van metagegevens niet toe. Wanneer u deze methode gebruikt, worden de metagegevens automatisch gegenereerd voor het nieuwe DependencyProperty en het type eigenaar. De automatisch gegenereerde metagegevens zijn het resultaat van de samengevoegde metagegevens van alle basistypen waarvoor deze eigenschap is gedefinieerd. Als er geen samengevoegde metagegevens beschikbaar zijn, worden de standaardmetagegevens voor de eigenschap gebruikt. Als de eigenschap is geregistreerd met behulp van de RegisterAttached methode, zijn de standaardmetagegevens hetzelfde als de metagegevens die worden gemaakt toen RegisterAttached ze werden aangeroepen. Anders wordt het PropertyMetadata object gemaakt met de DefaultValue eigenschap ingesteld op de standaardwaarde van het eigenschapstype en worden alle andere eigenschappen van het object PropertyMetadata ingesteld nullop . Gebruik de AddOwner(Type, PropertyMetadata) handtekening als u metagegevens wilt opgeven voor de versie van de afhankelijkheidseigenschap, zoals toegevoegd aan het opgegeven type.
De retourwaarde van deze methode wordt doorgaans gebruikt om de afhankelijkheidseigenschap te declareren en beschikbaar te maken door een id van de afhankelijkheidseigenschap op te slaan. De id biedt toegang tot de afhankelijkheidseigenschap als u systeem-API's voor eigenschappen wilt aanroepen voor de afhankelijkheidseigenschap, met name omdat deze bestaat in de klasse eigenaar toevoegen. Dezelfde eigenschapsnaam voor zowel de oorspronkelijke eigenaar als de toegevoegde eigenaar moet worden gebruikt om de vergelijkbare functionaliteit aan te geven. U moet de DependencyProperty retourwaarde van de AddOwner methode gebruiken om de id van de afhankelijkheidseigenschap te definiëren en ook CLR-eigenschapswikkelaars te declareren voor afhankelijkheidseigenschappen die worden toegevoegd aan typen met behulp van AddOwner.
De AddOwner methodologie die hierboven wordt aanbevolen, wordt gebruikt bij het maken van de afhankelijkheidseigenschappen die binnen WPF worden gedeclareerd. U kunt bijvoorbeeld een BorderControl afhankelijkheidseigenschap definiëren BorderBrush die vergelijkbare functionaliteit heeft.
Control definieert de BorderBrush eigenschap voor het eigenschappensysteem door aan te roepen AddOwner op basis van de oorspronkelijke eigenaar Border en de id van de geregistreerde BorderBrushProperty afhankelijkheidseigenschap. De AddOwner retourwaarde wordt vervolgens gebruikt om een nieuw statisch DependencyProperty veld (BorderBrushProperty) voor die eigenschap op de toegevoegde eigenaar in te stellen en er wordt ook een BorderBrush eigenschapswikkelaar gedeclareerd.
Van toepassing op
AddOwner(Type, PropertyMetadata)
Hiermee voegt u een ander type toe als eigenaar van een afhankelijkheidseigenschap die al is geregistreerd, waarbij metagegevens van afhankelijkheden voor de afhankelijkheidseigenschap worden opgegeven, zoals deze bestaan op het opgegeven eigenaartype.
public:
System::Windows::DependencyProperty ^ AddOwner(Type ^ ownerType, System::Windows::PropertyMetadata ^ typeMetadata);
public System.Windows.DependencyProperty AddOwner(Type ownerType, System.Windows.PropertyMetadata typeMetadata);
member this.AddOwner : Type * System.Windows.PropertyMetadata -> System.Windows.DependencyProperty
Public Function AddOwner (ownerType As Type, typeMetadata As PropertyMetadata) As DependencyProperty
Parameters
- ownerType
- Type
Het type dat moet worden toegevoegd als eigenaar van deze afhankelijkheidseigenschap.
- typeMetadata
- PropertyMetadata
De metagegevens die de afhankelijkheidseigenschap kwalificeren zoals deze bestaat op het opgegeven type.
Retouren
Een verwijzing naar de oorspronkelijke DependencyProperty id die de afhankelijkheidseigenschap identificeert. Deze id moet worden weergegeven door de klasse toe te voegen als veld public static readonly .
Opmerkingen
Met deze methode kan het eigenschapssysteem een afhankelijkheidseigenschap herkennen voor een type dat die specifieke afhankelijkheidseigenschap in eerste instantie niet heeft geregistreerd.
De retourwaarde van deze methode wordt gebruikt om de afhankelijkheidseigenschap te declareren en beschikbaar te maken, met name omdat deze bestaat in de klasse eigenaar toevoegen. Over het algemeen moet dezelfde eigenschapsnaam voor zowel de oorspronkelijke eigenaar als de toegevoegde eigenaar worden gebruikt om de vergelijkbare functionaliteit aan te geven. Het is een goede gewoonte om de id's, evenals nieuwe CLR-eigenschapswikkelaars, beschikbaar te maken voor afhankelijkheidseigenschappen die worden toegevoegd aan typen die worden gebruikt AddOwner.
De hierboven aanbevolen methodologie AddOwner wordt gebruikt bij het maken van API's die zijn gedeclareerd binnen WPF. U kunt bijvoorbeeld een BorderControl afhankelijkheidseigenschap definiëren BorderBrush die vergelijkbare functionaliteit heeft.
Controldefinieert de BorderBrush eigenschap voor het eigenschappensysteem door de oorspronkelijke eigenaar AddOwner en de id van de geregistreerde Border afhankelijkheidseigenschap aan te roepenBorderBrushProperty. De AddOwner retourwaarde wordt vervolgens gebruikt om een statisch DependencyProperty veld (BorderBrushProperty) voor die eigenschap op de toegevoegde eigenaar in te stellen en er wordt ook een BorderBrush eigenschapswikkelaar gedeclareerd.
De id van de afhankelijkheidseigenschap van de toegevoegde eigenaar moet worden gebruikt voor bewerkingen zoals GetValue. Typespecifieke bewerkingen met betrekking tot typen of exemplaren van de klasse die wer als eigenaar met verschillende metagegevens hebben toegevoegd, retourneren echter nog steeds de verwachte resultaten. Dit geldt zelfs als de oorspronkelijke afhankelijkheidseigenschaps-id (niet de toegevoegde eigenaar) is opgegeven in aanroepen naar methoden zoals GetValue of GetMetadata. De metagegevens voor de toegevoegde eigenaar worden door de AddOwner aanroep zelf gedumpt, niet noodzakelijkerwijs uitsluitend verwezen door het veld voor het toevoegen van de klasse-id van de eigenaar. Toch is het een goede gewoonte om de id, evenals nieuwe CLR-eigenschapswikkelaars, beschikbaar te maken voor afhankelijkheidseigenschappen die worden toegevoegd aan typen die worden gebruikt AddOwner, omdat als u dit niet doet, verschillen ontstaat tussen de CLR- en XAML-weergaven van uw eigenschappen.
De opgegeven metagegevens worden samengevoegd met de eigenschappenmetagegevens voor de afhankelijkheidseigenschap, zoals deze bestaat op de basiseigenaar. Alle kenmerken die zijn opgegeven in de oorspronkelijke basismetagegevens, blijven behouden. Alleen de kenmerken die specifiek zijn gewijzigd in de nieuwe metagegevens, overschrijven de kenmerken van de basismetagegevens. Sommige kenmerken, zoals DefaultValue, worden vervangen als ze zijn opgegeven in de nieuwe metagegevens. Andere, zoals PropertyChangedCallback, worden gecombineerd. Uiteindelijk is het samenvoeggedrag afhankelijk van het metagegevenstype van de eigenschap dat wordt gebruikt voor de onderdrukking, dus het gedrag dat hier wordt beschreven, is voor de bestaande metagegevensklassen van eigenschappen van eigenschappen die worden gebruikt door WPF afhankelijkheidseigenschappen. Zie Metagegevens van afhankelijkheidseigenschappen en metagegevens van frameworkeigenschappen voor meer informatie.