Freigeben über


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:Classdeklarieren. 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 typeStringverwenden. 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