x:TypeArguments-richtlijn
Hiermee worden beperkingstypeargumenten van een algemeen doorgegeven aan de constructor van het algemene type.
XAML-kenmerkgebruik
<object x:TypeArguments="typeString" .../>
XAML-waarden
Waarde | Beschrijving |
---|---|
object |
Een objectelementdeclaratie van een XAML-type, dat wordt ondersteund door een algemeen CLR-type. Als object verwijst naar een XAML-type dat niet afkomstig is van de standaard XAML-naamruimte, moet object een voorvoegsel vereisen om de XAML-naamruimte aan te geven waar object bestaat. |
typeString |
Een tekenreeks die een of meer XAML-typenamen declareert als tekenreeksen, die de typeargumenten voor het algemene CLR-type levert. Zie Opmerkingen voor aanvullende syntaxisnotities. |
Opmerkingen
In de meeste gevallen worden de XAML-typen die worden gebruikt als informatie-item in een typeString
tekenreeks voorafgegaan. Typische typen algemene CLR-beperkingen (bijvoorbeeld Int32 en String) zijn afkomstig uit CLR-basisklassebibliotheken. Deze bibliotheken zijn niet toegewezen aan typische frameworkspecifieke XAML-naamruimten en vereisen daarom een voorvoegseltoewijzing voor XAML-gebruik.
U kunt meer dan één XAML-typenaam opgeven met behulp van een kommascheidingsteken.
Als de algemene beperkingen zelf algemene typen gebruiken, kunnen de geneste beperkingstypeargumenten tussen haakjes () worden opgenomen.
Houd er rekening mee dat deze definitie van x:TypeArguments
specifiek is voor .NET XAML Services en clr-backing gebruikt. Een definitie op taalniveau vindt u in [MS-XAML] Sectie 7.3.11.
Gebruiksvoorbeelden
Voor deze voorbeelden wordt ervan uitgegaan dat de volgende XAML-naamruimtedefinities zijn gedeclareerd:
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:scg="clr-namespace:System.Collections.Generic;assembly=mscorlib"
Lijst<tekenreeks>
<scg:List x:TypeArguments="sys:String" ...>
een nieuwe List<T> instantiëren met een String typeargument.
Woordenlijst<tekenreeks, tekenreeks>
<scg:Dictionary x:TypeArguments="sys:String,sys:String" ...>
een nieuwe Dictionary<TKey,TValue> instantiëren met twee String typeargumenten.
Queue<KeyValuePair<String, String>>
<scg:Queue x:TypeArguments="scg:KeyValuePair(sys:String,sys:String)" ...>
een instantie maakt van een nieuwe Queue<T> met een beperking van KeyValuePair<TKey,TValue> met de argumenten van het binnenste beperkingstype String en String.
XAML 2006 en WPF Generic XAML-gebruik
Voor gebruik van XAML 2006 en XAML die wordt gebruikt voor WPF-toepassingen, bestaan de volgende beperkingen voor gebruik van x:TypeArguments
en algemene typen van XAML in het algemeen:
Alleen het hoofdelement van een XAML-bestand kan een algemeen XAML-gebruik ondersteunen dat verwijst naar een algemeen type.
Het hoofdelement moet worden toegewezen aan een algemeen type met ten minste één typeargument. Een voorbeeld is PageFunction<T>. De paginafuncties zijn het primaire scenario voor algemene XAML-gebruiksondersteuning in WPF.
Het hoofdelement XAML-objectelement voor het algemene element moet ook een gedeeltelijke klasse declareren met behulp van
x:Class
. Dit geldt zelfs als u een WPF-buildactie definieert.x:TypeArguments
kan niet verwijzen naar geneste algemene beperkingen.
XAML 2009 of XAML 2006 zonder WPF 3.0- of WPF 3.5-afhankelijkheid
In .NET XAML Services voor XAML 2006 of XAML 2009 zijn de WPF-gerelateerde beperkingen voor algemeen XAML-gebruik versoepeld. U kunt een algemeen objectelement instantiëren op elke positie in XAML-markeringen die het backingtypesysteem en het objectmodel kunnen ondersteunen.
Als u XAML 2009 gebruikt in plaats van de CLR-basistypen toe te passen om XAML-typen te verkrijgen voor algemene taalprimitieven, kunt u ingebouwde typen voor algemene XAML-taalprimitieven als informatie-items in een typeString
. U kunt bijvoorbeeld het volgende declareren (voorvoegseltoewijzingen worden niet weergegeven, maar x is de XAML-taal XAML-naamruimte voor XAML 2009):
<my:BusinessObject x:TypeArguments="x:String,x:Int32"/>
In WPF en wanneer u zich richt op .NET Framework 4 of .NET Core 3.0 (of hoger), kunt u XAML 2009-functies samen met x:TypeArguments
gebruiken, maar alleen voor losse XAML (XAML die niet is gecompileerd met opmaak). Gecompileerde XAML voor WPF en de BAML-vorm van XAML bieden momenteel geen ondersteuning voor de trefwoorden en functies van XAML 2009. Als u de XAML wilt compileren, moet u werken onder de beperkingen die zijn genoteerd in de sectie XAML 2006 en WPF Generic XAML Usages. BAML wordt alleen ondersteund in .NET Framework.
Zie ook
.NET Desktop feedback