Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Skickar begränsande typargument för en generisk till konstruktorn av den generiska typen.
XAML-attributanvändning
<object x:TypeArguments="typeString" .../>
XAML-värden
Värde | Beskrivning |
---|---|
object |
En objektelementdeklaration av en XAML-typ som backas upp av en allmän CLR-typ. Om object refererar till en XAML-typ som inte kommer från XAML-standardnamnområdet kräver object ett prefix för att ange XAML-namnområdet där object finns. |
typeString |
En sträng som deklarerar ett eller flera XAML-typnamn som strängar, som tillhandahåller typargumenten för den allmänna CLR-typen. Se Kommentarer för ytterligare syntaxanteckningar. |
Anmärkningar
I de flesta fall prefixeras de XAML-typer som används som ett informationsobjekt i en typeString
sträng. Vanliga typer av allmänna CLR-begränsningar (till exempel Int32 och String) kommer från CLR-basklassbibliotek. Dessa bibliotek mappas inte till typiska ramverksspecifika XAML-standardnamnområden och kräver därför en prefixmappning för XAML-användning.
Du kan ange mer än ett XAML-typnamn med hjälp av en kommaavgränsare.
Om de allmänna begränsningarna i sig använder generiska typer kan argumenten för kapslade villkorstyper innehållas av parenteser ().
Observera att den här definitionen av x:TypeArguments
är specifik för .NET XAML Services och använder CLR-säkerhetskopiering. En definition på språknivå finns i [MS-XAML] Avsnitt 7.3.11.
Användningsexempel
Anta att följande XAML-namnområdesdefinitioner deklareras för dessa exempel:
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:scg="clr-namespace:System.Collections.Generic;assembly=mscorlib"
Lista<sträng>
<scg:List x:TypeArguments="sys:String" ...>
instansierar en ny List<T> med ett argument av String typ.
Ordlista<sträng, sträng>
<scg:Dictionary x:TypeArguments="sys:String,sys:String" ...>
instansierar en ny Dictionary<TKey,TValue> med två argument av typen String.
Queue<KeyValuePair<String,String>>
<scg:Queue x:TypeArguments="scg:KeyValuePair(sys:String,sys:String)" ...>
instansierar en ny Queue<T> som har en begränsning på KeyValuePair<TKey,TValue> med argumenten för den inre begränsningstypen String och String.
XAML 2006 och WPF Generic XAML-användning
För XAML 2006-användning och XAML som används för WPF-program finns följande begränsningar för användning av x:TypeArguments
och allmän typ från XAML i allmänhet:
Endast rotelementet i en XAML-fil kan stödja en allmän XAML-användning som refererar till en allmän typ.
Rotelementet måste mappas till en allmän typ med minst ett typargument. Ett exempel är PageFunction<T>. Sidfunktionerna är det primära scenariot för allmänt XAML-användningsstöd i WPF.
Rotelementet XAML-objektelement för det generiska objektet måste också deklarera en partiell klass med hjälp av
x:Class
. Detta gäller även om du definierar en WPF-byggåtgärd.x:TypeArguments
kan inte referera till kapslade allmänna begränsningar.
XAML 2009 eller XAML 2006 utan WPF 3.0 eller WPF 3.5-beroende
I .NET XAML-tjänster för XAML 2006 eller XAML 2009 är WPF-relaterade begränsningar för allmän XAML-användning avslappnade. Du kan instansiera ett generiskt objektelement på valfri plats i XAML-markering som backningstypsystemet och objektmodellen kan stödja.
Om du använder XAML 2009 i stället för att mappa CLR-bastyperna för att hämta XAML-typer för vanliga språkpri primitiver kan du använda inbyggda typer för common XAML Language Primitives som informationsobjekt i en typeString
. Du kan till exempel deklarera följande (prefixmappningar visas inte, men x är XAML-språkets XAML-namnområde för XAML 2009):
<my:BusinessObject x:TypeArguments="x:String,x:Int32"/>
I WPF och när du riktar in dig på .NET Framework 4 eller .NET Core 3.0 (eller senare) kan du använda XAML 2009-funktioner tillsammans med x:TypeArguments
men bara för lös XAML (XAML som inte är påläggskompilerad). Påläggskompilerade XAML för WPF och BAML-formen av XAML stöder för närvarande inte XAML 2009-nyckelord och -funktioner. Om du behöver kompilera XAML måste du använda de begränsningar som anges i avsnittet XAML 2006 och WPF Generic XAML Usages. BAML stöds endast i .NET Framework.
Se även
.NET Desktop feedback