x:TypeArguments-Direktive
Übergibt einschränkende Typargumente eines generischen Typs an den Konstruktor des generischen Typs.
XAML-Attributverwendung
<object x:TypeArguments="typeString" .../>
XAML-Werte
Wert | Beschreibung |
---|---|
object |
Eine Objektelementdeklaration eines XAML-Typs, die von einem generischen CLR-Typ unterstützt wird. Wenn object auf einen XAML-Typ verweist, der nicht aus dem Standard-XAML-Namespace stammt, erfordert object ein Präfix, um den XAML-Namespace anzugeben, in dem object vorhanden ist. |
typeString |
Eine Zeichenfolge, die einen oder mehrere XAML-Typnamen als Zeichenfolgen deklariert, die die Typargumente für den generischen CLR-Typ bereitstellt. Weitere Syntaxhinweise finden Sie in den Hinweisen. |
Bemerkungen
In den meisten Fällen werden die XAML-Typen, die als Informationselement in einer typeString
Zeichenfolge verwendet werden, präfixiert. Typische Typen generischer CLR-Einschränkungen (z. B. Int32 und String) stammen aus CLR-Basisklassenbibliotheken. Diese Bibliotheken sind nicht typischen frameworkspezifischen XAML-Standardnamespaces zugeordnet und erfordern daher eine Präfixzuordnung für die XAML-Verwendung.
Sie können mehrere XAML-Typnamen mithilfe eines Kommastrennzeichens angeben.
Wenn die generischen Einschränkungen selbst generische Typen verwenden, können die geschachtelten Einschränkungstypargumente in Klammern () enthalten sein.
Beachten Sie, dass diese Definition von x:TypeArguments
spezifisch für .NET-XAML-Dienste und die Verwendung der CLR-Sicherung ist. Eine Definition auf Sprachebene finden Sie in [MS-XAML] Abschnitt 7.3.11.
Verwendungsbeispiele
Gehen Sie für diese Beispiele davon aus, dass die folgenden XAML-Namespacedefinitionen deklariert werden:
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:scg="clr-namespace:System.Collections.Generic;assembly=mscorlib"
<Zeichenfolgen-> auflisten
<scg:List x:TypeArguments="sys:String" ...>
instanziiert eine neue List<T> mit einem argument vom Typ String.
Wörterbuch<Zeichenfolge,Zeichenfolgen->
<scg:Dictionary x:TypeArguments="sys:String,sys:String" ...>
instanziiert eine neue Dictionary<TKey,TValue> mit zwei String Typargumenten.
Warteschlange<KeyValuePair<Zeichenfolge,Zeichenfolgen->>
<scg:Queue x:TypeArguments="scg:KeyValuePair(sys:String,sys:String)" ...>
instanziiert eine neue Queue<T>, die eine Einschränkung von KeyValuePair<TKey,TValue> mit den inneren Einschränkungstypargumenten String und Stringhat.
XAML 2006 und WPF Generic XAML Usages
Für die VERWENDUNG von XAML 2006 und XAML, die für WPF-Anwendungen verwendet wird, gelten im Allgemeinen die folgenden Einschränkungen für x:TypeArguments
- und generische Typverwendungen aus XAML:
Nur das Stammelement einer XAML-Datei kann eine generische XAML-Verwendung unterstützen, die auf einen generischen Typ verweist.
Das Stammelement muss einem generischen Typ mit mindestens einem Typargument zugeordnet werden. Ein Beispiel ist PageFunction<T>. Die Seitenfunktionen sind das primäre Szenario für die generische XAML-Verwendungsunterstützung in WPF.
Das XAML-Objektelement des Stammelements für das Generische muss auch eine partielle Klasse mit
x:Class
deklarieren. Dies gilt auch dann, wenn sie eine WPF-Buildaktion definieren.x:TypeArguments
können nicht auf geschachtelte generische Einschränkungen verweisen.
XAML 2009 oder XAML 2006 ohne WPF 3.0- oder WPF 3.5-Abhängigkeit
In .NET XAML Services für XAML 2006 oder XAML 2009 sind die WPF-bezogenen Einschränkungen für die generische XAML-Verwendung entspannt. Sie können ein generisches Objektelement an einer beliebigen Position im XAML-Markup instanziieren, das vom Sicherungstypsystem und Objektmodell unterstützt werden kann.
Wenn Sie XAML 2009 anstelle der Zuordnung der CLR-Basistypen verwenden, um XAML-Typen für allgemeine Sprachgrundtypen abzurufen, können Sie integrierten Typen für allgemeine XAML-Sprachgrundtypen als Informationselemente in einem typeString
verwenden. Sie können beispielsweise Folgendes deklarieren (Präfixzuordnungen werden nicht angezeigt, x ist jedoch der XAML-Sprach-XAML-Namespace für XAML 2009):
<my:BusinessObject x:TypeArguments="x:String,x:Int32"/>
In WPF und bei der Zielbestimmung von .NET Framework 4 oder .NET Core 3.0 (oder höher) können Sie XAML 2009-Features zusammen mit x:TypeArguments
verwenden, jedoch nur für lose XAML (XAML, das nicht markupkompiliert ist). Markupkompiliertes XAML für WPF und die BAML-Form von XAML unterstützen derzeit nicht die XAML 2009-Schlüsselwörter und -Features. Wenn Sie das XAML-Markup kompilieren müssen, müssen Sie unter den Im Abschnitt XAML 2006 und WPF Generic XAML Usages aufgeführten Einschränkungen arbeiten. BAML wird nur in .NET Framework unterstützt.
Siehe auch
.NET Desktop feedback