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.