Obory názvů XAML v Xamarin.Forms
XAML používá xmlns XML atribut pro deklarace oboru názvů. Tento článek představuje syntaxi oboru názvů XAML a ukazuje, jak deklarovat obor názvů XAML pro přístup k typu.
Přehled
Existují dvě deklarace oboru názvů XAML, které jsou vždy v kořenovém prvku souboru XAML. První definuje výchozí obor názvů, jak je znázorněno v následujícím příkladu kódu XAML:
xmlns="http://xamarin.com/schemas/2014/forms"
Výchozí obor názvů určuje, že prvky definované v souboru XAML bez předpony odkazují na Xamarin.Forms třídy, například ContentPage
.
Druhá deklarace oboru názvů používá předponu x
, jak je znázorněno v následujícím příkladu kódu XAML:
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
XAML používá předpony k deklaraci jiných než výchozích oborů názvů s předponou používanou při odkazování na typy v rámci oboru názvů. Deklarace x
oboru názvů určuje, že prvky definované v rámci XAML s předponou x
jsou použity pro elementy a atributy, které jsou vnitřní pro XAML (konkrétně specifikace XAML 2009).
Následující tabulka popisuje x
atributy oboru názvů, které Xamarin.Formspodporují:
Konstrukce | Popis |
---|---|
x:Arguments |
Určuje argumenty konstruktoru pro jiný než výchozí konstruktor nebo pro deklaraci objektu metody továrny. |
x:Class |
Určuje obor názvů a název třídy pro třídu definovanou v jazyce XAML. Název třídy se musí shodovat s názvem třídy souboru kódu za kódem. Všimněte si, že tento konstruktor se může objevit pouze v kořenovém prvku souboru XAML. |
x:DataType |
Určuje typ objektu, ke kterému se element XAML a jeho podřízené prvky vytvoří vazbu. |
x:FactoryMethod |
Určuje metodu továrny, kterou lze použít k inicializaci objektu. |
x:FieldModifier |
Určuje úroveň přístupu pro vygenerovaná pole pro pojmenované elementy XAML. |
x:Key |
Určuje jedinečný uživatelsky definovaný klíč pro každý prostředek v objektu ResourceDictionary . Hodnota klíče se používá k načtení prostředku XAML a obvykle se používá jako argument pro StaticResource rozšíření značek. |
x:Name |
Určuje název objektu modulu runtime pro element XAML. Nastavení x:Name je podobné deklarování proměnné v kódu. |
x:TypeArguments |
Určuje argumenty obecného typu konstruktoru obecného typu. |
Další informace o atributu x:DataType
naleznete v tématu Kompilované vazby. Další informace o atributu x:FieldModifier
naleznete v tématu Modifikátory pole. Další informace o atributech x:Arguments
a x:FactoryMethod
atributech naleznete v tématu Předávání argumentů v XAML. Další informace o atributu x:TypeArguments
naleznete v tématu Obecné typy v XAML s Xamarin.Forms.
Poznámka:
Kromě atributů oboru názvů uvedených výše zahrnuje také rozšíření značek, Xamarin.Forms která je možné využívat prostřednictvím předpony x
oboru názvů. Další informace naleznete v tématu Využívání rozšíření značek XAML.
V jazyce XAML deklarace oboru názvů dědí z nadřazeného elementu do podřízeného elementu. Proto při definování oboru názvů v kořenovém prvku souboru XAML všechny elementy v daném souboru dědí deklaraci oboru názvů.
Deklarace oborů názvů pro typy
Typy lze odkazovat v jazyce XAML deklarací oboru názvů XAML s předponou, přičemž deklarace oboru názvů určuje název oboru názvů CLR (Common Language Runtime) a volitelně název sestavení. Toho dosáhnete definováním hodnot pro následující klíčová slova v deklaraci oboru názvů:
- clr-namespace: nebo using: – obor názvů CLR deklarovaný v rámci sestavení, který obsahuje typy, které mají být vystaveny jako elementy XAML. Toto klíčové slovo je povinné.
- assembly= – sestavení, které obsahuje odkazovaný obor názvů CLR. Tato hodnota je název sestavení bez přípony souboru. Cesta k sestavení by měla být vytvořena jako odkaz v souboru projektu, který obsahuje soubor XAML, který bude odkazovat na sestavení. Toto klíčové slovo lze vynechat, pokud je hodnota clr-namespace ve stejném sestavení jako kód aplikace odkazující na typy.
Všimněte si, že znak oddělující clr-namespace
token od using
jeho hodnoty je dvojtečka, zatímco znak oddělující assembly
token od jeho hodnoty je znaménko rovná se. Znak, který se má použít mezi těmito dvěma tokeny, je středník.
Následující příklad kódu ukazuje deklaraci oboru názvů XAML:
<ContentPage ... xmlns:local="clr-namespace:HelloWorld" ...>
...
</ContentPage>
Alternativně to lze napsat takto:
<ContentPage ... xmlns:local="using:HelloWorld" ...>
...
</ContentPage>
Předpona local
je konvence, která označuje, že typy v rámci oboru názvů jsou pro aplikaci místní. Pokud jsou typy v jiném sestavení, měl by být název sestavení také definován v deklaraci oboru názvů, jak je znázorněno v následujícím příkladu kódu XAML:
<ContentPage ... xmlns:behaviors="clr-namespace:Behaviors;assembly=BehaviorsLibrary" ...>
...
</ContentPage>
Předpona oboru názvů se pak zadává při deklarování instance typu z importovaného oboru názvů, jak je znázorněno v následujícím příkladu kódu XAML:
<ListView ...>
<ListView.Behaviors>
<behaviors:EventToCommandBehavior EventName="ItemSelected" ... />
</ListView.Behaviors>
</ListView>
Informace o definování vlastního schématu oboru názvů naleznete v tématu Vlastní schémata oboru názvů XAML.
Shrnutí
Tento článek představil syntaxi oboru názvů XAML a ukázal, jak deklarovat obor názvů XAML pro přístup k typu. XAML používá xmlns
atribut XML pro deklarace oboru názvů a typy lze odkazovat v XAML deklarací oboru názvů XAML s předponou.