Xamarin.Forms Основы XAML

Download Sample Скачайте пример

Язык разметки приложений 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.

Другие видео о Xamarin см. на Channel 9 и YouTube.