Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
XAML использует XML-атрибут XML для объявлений пространства имен. В этой статье представлен синтаксис пространства имен XAML и демонстрируется объявление пространства имен XAML для доступа к типу.
Обзор
Существует два объявления пространства имен XAML, которые всегда находятся в корневом элементе XAML-файла. Первый определяет пространство имен по умолчанию, как показано в следующем примере кода XAML:
xmlns="http://xamarin.com/schemas/2014/forms"
Пространство имен по умолчанию указывает, что элементы, определенные в XAML-файле без префикса, ссылаются на Xamarin.Forms классы, например ContentPage.
Второе объявление пространства имен использует x префикс, как показано в следующем примере кода XAML:
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
XAML использует префиксы для объявления пространств имен, отличных от по умолчанию, с префиксом, используемым при ссылке на типы в пространстве имен. Объявление x пространства имен указывает, что элементы, определенные в XAML с префиксом x , используются для элементов и атрибутов, встроенных в XAML (в частности спецификации XAML 2009).
В следующей таблице описаны атрибуты пространства имен, x поддерживаемые Xamarin.Forms:
| Конструкция | Description |
|---|---|
x:Arguments |
Задает аргументы конструктора для конструктора, отличного от по умолчанию, или для объявления объекта метода фабрики. |
x:Class |
Задает пространство имен и имя класса для класса, определенного в XAML. Имя класса должно соответствовать имени класса файла code-behind. Обратите внимание, что эта конструкция может отображаться только в корневом элементе XAML-файла. |
x:DataType |
Указывает тип объекта, к которому будет привязан элемент XAML, к которому будет привязан дочерний элемент. |
x:FactoryMethod |
Указывает метод фабрики, который можно использовать для инициализации объекта. |
x:FieldModifier |
Задает уровень доступа для созданных полей для именованных элементов XAML. |
x:Key |
Задает уникальный определяемый пользователем ключ для каждого ресурса.ResourceDictionary Значение ключа используется для получения ресурса XAML и обычно используется в качестве аргумента StaticResource расширения разметки. |
x:Name |
Указывает имя объекта среды выполнения для элемента XAML. Параметр x:Name аналогичен объявлению переменной в коде. |
x:TypeArguments |
Задает аргументы универсального типа конструктору универсального типа. |
Дополнительные сведения об атрибуте x:DataType см. в разделе "Скомпилированные привязки". Дополнительные сведения об атрибуте x:FieldModifier см. в разделе "Модификаторы полей". Дополнительные сведения об x:Arguments и x:FactoryMethod атрибутах см. в разделе "Передача аргументов" в XAML. Дополнительные сведения об x:TypeArguments атрибуте см. в разделе Generics in XAML with Xamarin.Forms.
Примечание.
Помимо атрибутов пространства имен, перечисленных выше, Xamarin.Forms также включает расширения разметки, которые можно использовать через x префикс пространства имен. Дополнительные сведения см. в разделе "Использование расширений разметки XAML".
В XAML объявления пространства имен наследуются от родительского элемента к дочернему элементу. Поэтому при определении пространства имен в корневом элементе XAML-файла все элементы в этом файле наследуют объявление пространства имен.
Объявление пространств имен для типов
Типы можно ссылаться на XAML, объявив пространство имен XAML с префиксом, с объявлением пространства имен, указывающим имя пространства имен среды CLR и необязательно имя сборки. Это достигается путем определения значений для следующих ключевых слов в объявлении пространства имен:
- clr-namespace: или using: — пространство имен CLR, объявленное в сборке, содержащей типы, предоставляемые в виде элементов XAML. Это ключевое слово является обязательным.
- assembly= — сборка, содержащая указанное пространство имен CLR. Это значение — имя сборки без расширения файла. Путь к сборке должен быть установлен в качестве ссылки в файле проекта, который содержит XAML-файл, который будет ссылаться на сборку. Это ключевое слово может быть опущено, если значение пространства имен clr находится в той же сборке, что и код приложения, ссылающийся на типы.
Обратите внимание, что символ, разделяющий маркер от его значения, является двоеточием, а символ, разделяющий clr-namespace using assembly маркер от его значения, является знаком равенства. Символ, используемый между двумя маркерами, является точкой с запятой.
В следующем примере кода показано объявление пространства имен XAML:
<ContentPage ... xmlns:local="clr-namespace:HelloWorld" ...>
...
</ContentPage>
Кроме того, это можно написать следующим образом:
<ContentPage ... xmlns:local="using:HelloWorld" ...>
...
</ContentPage>
Префикс local — это соглашение, используемое для указания того, что типы в пространстве имен являются локальными для приложения. Кроме того, если типы находятся в другой сборке, имя сборки также должно быть определено в объявлении пространства имен, как показано в следующем примере кода XAML:
<ContentPage ... xmlns:behaviors="clr-namespace:Behaviors;assembly=BehaviorsLibrary" ...>
...
</ContentPage>
Затем префикс пространства имен указывается при объявлении экземпляра типа из импортированного пространства имен, как показано в следующем примере кода XAML:
<ListView ...>
<ListView.Behaviors>
<behaviors:EventToCommandBehavior EventName="ItemSelected" ... />
</ListView.Behaviors>
</ListView>
Сведения об определении схемы пользовательского пространства имен см. в разделе "Схемы пользовательского пространства имен XAML".
Итоги
В этой статье представлен синтаксис пространства имен XAML и показано, как объявить пространство имен XAML для доступа к типу. XAML использует xmlns XML-атрибут для объявлений пространства имен и типы можно ссылаться на XAML, объявляя пространство имен XAML с префиксом.