x:TypeArguments – direktiva

Předá argumenty omezujícího typu obecného konstruktoru obecného typu.

Použití atributu XAML

<object x:TypeArguments="typeString" .../>

Hodnoty XAML

Hodnota Popis
object Deklarace elementu objektu typu XAML, která je podporována obecným typem CLR. Pokud object odkazuje na typ XAML, který není z výchozího oboru názvů XAML, vyžaduje předponu k označení oboru názvů XAML, object kde object existuje.
typeString Řetězec, který deklaruje jeden nebo více názvů typů XAML jako řetězce, který poskytuje argumenty typu pro obecný typ CLR. Další poznámky ke syntaxi najdete v poznámkách.

Poznámky

Ve většině případů jsou předpony typy XAML, které se používají jako položka informací v typeString řetězci. Typické typy obecných omezení CLR (například Int32 a String) pocházejí z knihoven základních tříd CLR. Tyto knihovny nejsou mapovány na typické výchozí obory názvů XAML specifické pro architekturu, a proto vyžadují mapování předpon pro použití XAML.

Pomocí oddělovače čárky můžete zadat více než jeden název typu XAML.

Pokud samotná obecná omezení používají obecné typy, mohou být argumenty vnořeného typu omezení obsaženy v závorkách ().

Všimněte si, že tato definice x:TypeArguments je specifická pro služby .NET XAML a použití backingu CLR. Definici na úrovni jazyka najdete v části [MS-XAML] 7.3.11.

Příklady použití

V těchto příkladech předpokládejme, že jsou deklarovány následující definice oboru názvů XAML:

xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:scg="clr-namespace:System.Collections.Generic;assembly=mscorlib"

List<String>

<scg:List x:TypeArguments="sys:String" ...> vytvoří instanci nového List<T> argumentu String typu.

Řetězec slovníku<, řetězec>

<scg:Dictionary x:TypeArguments="sys:String,sys:String" ...> vytvoří instanci nového Dictionary<TKey,TValue> se dvěma String argumenty typu.

Queue<KeyValuePair<String, String>>

<scg:Queue x:TypeArguments="scg:KeyValuePair(sys:String,sys:String)" ...> vytvoří instanci nového Queue<T> , který má omezení KeyValuePair<TKey,TValue> s argumenty String vnitřního typu omezení a String.

Obecná použití XAML 2006 a WPF XAML

Pro použití XAML 2006 a XAML, který se používá pro aplikace WPF, existují následující omezení pro x:TypeArguments obecné použití typů z XAML obecně:

  • Obecné použití XAML, které odkazuje na obecný typ, může podporovat pouze kořenový prvek souboru XAML.

  • Kořenový prvek musí být mapovat na obecný typ s alespoň jedním argumentem typu. Příklad: PageFunction<T>. Funkce stránky jsou primárním scénářem podpory obecného použití XAML ve WPF.

  • Kořenový element XAML objekt element pro obecné musí také deklarovat částečnou třídu pomocí x:Class. To platí i v případě, že definujete akci sestavení WPF.

  • x:TypeArguments Aplikace nemůže odkazovat na vnořená obecná omezení.

XAML 2009 nebo XAML 2006 s žádnou závislostí WPF 3.0 nebo WPF 3.5

Ve službách .NET XAML pro XAML 2006 nebo XAML 2009 jsou omezení související s WPF u obecného použití XAML uvolněná. V kódu XAML, který podporuje systém backingového typu a objektový model, můžete vytvořit instanci obecného objektového prvku na libovolném místě.

Pokud místo mapování základních typů CLR použijete XAML 2009 k získání typů XAML pro běžné jazykové primitivy, můžete použít předdefinované typy pro běžné primitivy jazyka XAML jako položky informací v nástroji typeString. Můžete například deklarovat následující (mapování předpon se nezobrazují, ale x je obor názvů XAML jazyka XAML pro XAML 2009):

<my:BusinessObject x:TypeArguments="x:String,x:Int32"/>

Ve WPF a při cílení na rozhraní .NET Framework 4 nebo .NET Core 3.0 (nebo novější) můžete společně s funkcemi x:TypeArguments XAML 2009 používat kromě volného kódu XAML (XAML, který není kompilován pomocí značek). Kód XAML zkompilovaný pro WPF a formát BAML XAML v současné době nepodporují klíčová slova a funkce XAML 2009. Pokud potřebujete zkompilovat KÓD XAML, musíte pracovat s omezeními uvedenými v části Obecné použití XAML XAML 2006 a WPF. BAML je podporován pouze v rozhraní .NET Framework.

Viz také