Xamarin.Forms Основы XAML
Язык разметки приложений eXtensible (XAML) — это язык на основе XML, созданный корпорацией Майкрософт в качестве альтернативы программированию для создания экземпляров и инициализации объектов, а также организации этих объектов в родительских дочерних иерархиях. XAML был адаптирован к нескольким технологиям платформы .NET, но он нашел свою большую служебную программу в определении макета пользовательских интерфейсов в Windows Presentation Foundation (WPF), Silverlight, среда выполнения Windows и универсальная платформа Windows (UWP).
XAML позволяет разработчикам определять пользовательские интерфейсы в Xamarin.Forms приложениях с помощью разметки, а не кода. XAML никогда не требуется в Xamarin.Forms программе, но часто это более краткое и более визуально согласованное, чем эквивалентный код, и потенциально инструментируемый. XAML хорошо подходит для использования с популярной архитектурой приложения MVVM (Model-View-View-ViewModel): XAML определяет представление, связанное с кодом ViewModel с помощью привязок данных на основе XAML.
В XAML-файле Xamarin.Forms разработчик может определять пользовательские интерфейсы с помощью всех Xamarin.Forms представлений, макетов и страниц, а также пользовательских классов. XAML-файл можно скомпилировать или внедрить в исполняемый файл. В любом случае данные XAML анализируются во время сборки, чтобы найти именованные объекты, а также снова во время выполнения для создания экземпляров и инициализации объектов, а также для установления связей между этими объектами и кодом программирования.
XAML имеет несколько преимуществ по сравнению с эквивалентным кодом:
- XAML часто является более кратким и читаемым, чем эквивалентный код.
- Иерархия родительских дочерних элементов, встроенная в XML, позволяет XAML имитировать с большей визуальной ясностью иерархии родительских дочерних объектов пользовательского интерфейса.
- XAML может быть легко написан программистами, но также может быть инструментируемым и созданным визуальными инструментами разработки.
Существуют также недостатки, в основном связанные с ограничениями, которые являются встроенными для языков разметки:
- XAML не может содержать код. Все обработчики событий должны быть определены в файле кода.
- XAML не может содержать циклы для повторяющейся обработки. (Однако несколько Xamarin.Forms визуальных объектов, в частности
ListView
, могут создавать несколько дочерних элементов на основе объектов в коллекцииItemsSource
.) - XAML не может содержать условную обработку (однако привязка данных может ссылаться на преобразователь привязки на основе кода, который эффективно разрешает некоторую условную обработку).)
- Как правило, XAML не может создавать экземпляры классов, которые не определяют конструктор без параметров. (Однако иногда существует способ обойти это ограничение.)
- Как правило, xaml не может вызывать методы. (Опять же, это ограничение иногда может быть преодолено.)
Пока не существует визуального конструктора для создания XAML в Xamarin.Forms приложениях. Все XAML должны быть написаны вручную, но вы можете использовать XAML Горячая перезагрузка в Visual Studio 2019 или Visual Studio для Mac для просмотра макетов экрана при их редактировании. Даже разработчики с большим опытом работы в XAML знают, что экспериментирование вознаграждается.
XAML — это в основном XML, но XAML имеет некоторые уникальные функции синтаксиса. Самые важные из них:
- Элементы свойства
- Вложенные свойства
- Расширения разметки
Эти функции не являются расширениями XML. XAML является полностью юридическим XML. Но эти функции синтаксиса XAML используют XML уникальным образом. Они подробно рассматриваются в статьях ниже, в которых приведены общие сведения об использовании XAML для реализации MVVM.
Требования
В этой статье предполагается, что знакомство с Xamarin.Formsней работает. В этой статье также предполагается знакомство с XML, включая понимание использования объявлений пространства имен XML, а также элемента терминов, тега и атрибута.
Когда вы знакомы с Xamarin.Forms xml, начните читать часть 1. Начало работы с XAML.