В помощь мобильному разработчику
xamarin forms

Привязка нативных View напрямую в XAML

Александр Алексеев

В Xamarin.Forms содержится более чем 40 информативных страниц, где рассматриваются программные модули и средства управления, с помощью которых Вы можете разрабатывать и комбинировать на свой вкус замечательные нативные кросс-платформенные пользовательские интерфейсы. Одна из моих любимых особенностей Xamarin.Forms состоит в том, что здесь нам открыт доступ к 100% средств управления и API-интерфейсов для IOS, Android и Windows. Для реализации функций конкретной платформы, таких как геолокации или Bluetooth, мы можем воспользоваться DependencyService. Для добавления элементов управления конкретной платформы, такие как FloatingActionButton на Android, в нашем распоряжении есть много различных методов от настраиваемых рендереров до эффектов и нативной реализации.

Чтобы Вы без труда разрабатывали красивые пользовательские интерфейсы с элементами управления для конкретных платформ, мы с гордостью представляем Native View Declaration, позволяющую добавлять связываемые отображения данных iOS, Android и Windows непосредственно в XAML. Вместо того чтобы написать пользовательский визуализатор, вы можете просто добавить элемент управления непосредственно в XAML без дополнительной конфигурации. Из этой статьи вы узнаете, как добавить связываемые отображения данных iOS, Android и Windows непосредственно в Xamarin.Forms XAML с помощью нативной декларации отображения.

GIF

 

Введение в нативную декларацию отображения данных

Подготовительный этап

Для функционирования нативной декларации отображения данных необходимо установить последнюю стабильную сборку с канала обновлений, а также Service Release 0, благодаря чему Вы также сможете пользоваться преимуществами новых API-интерфейсов iOS 10 и Android Nougat при разработке мобильных приложений. Поддержка нативной декларации отображения была введена в Xamarin.Forms 2.3.3-pre, так что версия Xamarin.Forms, которую вы будете использовать для работы должна быть, по крайней мере, не младше этой. Как и в случае со всеми другими версиями Xamarin.Forms Вам не следует обновлять любой из пакетов Xamarin.Android.Support; Xamarin.Forms сам произведёт автоматическое обновление этих пакетов, если их более новая совместимая версия будет доступна.

 

Добавление нативного отображения к XAML

Нативное отображение добавляется предельно легко! Чтобы нативное отображение работало на XAML, нам следует сперва добавить XML-пространства имён (разметки xmlns) для каждой платформы, с которой мы станем выводить отображение. Благодаря этому Xamarin.Forms сможет найти нативные средства контроля для добавления в XAML. Средства управления, определенные для целей, отличных от указанной целевой платформы XAML пространства имён игнорируются. Целевая платформа выбирается автоматически в зависимости от того, на какой платформе запущено приложение. Далее, мы можем добавить нативное отображение непосредственно к нашему XAML:

 

artboard

Мы можем получить доступ ко всем нативным свойствам управления прямо из нашего XAML благодаря XML-атрибутам, а также просмотреть эти свойства с помощью XAML IntelliSense. Если нативное управление требует использования аргументов, то мы можем передать их ему с помощью атрибута Arguments XML.

2016-09-29_1446

 

Привязка данных в нативных отображениях

Возможность добавлять нативное отображение напрямую в XAML — это замечательно, но многие средства управления также требуют того, чтобы пользователь с ними взаимодействовал, например, при вводе текста. Привязка данных позволяет свойствам двух объектов быть связанными между собой таким образом, что изменение одного из них немедленно вызывает изменение другого. Нативная декларация отображения поддерживает привязку данных по умолчанию, поэтому вы можете связываться со свойствами нативных отображений напрямую изнутри XAML.

Нативные декларации отображения поддерживают не только привязку данных OneWay, где изменения распространяются от источника к целевому объекту, но также и привязку данных TwoWay. Двойственная привязка данных передаёт изменения в обоих направлениях, благодаря чему мы всегда получаем подтверждения того, что оба потока отображения постоянно работают синхронно. За счёт этого мы можем с помощью нативных декларации Xamarin.Forms создавать очень комплексные отображения такие, к примеру, как вот этот выбор цвета на следующем рисунке.

В отличие от нативной реализации, нативная декларации отображения работает также и с портативными библиотеками классов (PCL). Нативная привязка данных также будет работать с PCL, хотя Вам следует убедиться в том, что в Вашем XAML-компиляторе отключены страницы, которые используют нативную декларацию отображения.

 

Разработан c открытым исходным кодом

Следуя примеру Xamarin SDK, исходный код которых является открытым и доступен на GitHub, Xamarin.Forms также построен на основе открытого исходного кода! Мы хотим, чтобы разработчики имели возможность без особого труда вносить собственный вклад в Xamarin.Forms. Под участием в работе над проектом с открытым исходным кодом подразумевается не только написание кода, существует много различных возможностей для привнесения вклада в общее дело.

Если у Вас возникнут трудности в работе с нативной декларацией отображения и привязкой данных, нам будет небезынтересно получить от Вас обратную связь на форумах Xamarin и Bugzilla.

GIF

Заключение

Из этой статьи Вы узнали, как использовать возможности новых native view declaration и native bindings в Xamarin.Forms 2.3.3 и более старшей его версии, чтобы добавить средства управления конкретной платформы непосредственно к XAML, обойдясь без пользовательского средства визуализации. Для получения дополнительной информации о нативной декларации отображения, посетите форум Xamarin. Чтобы скачать образцы нативной декларации, загляните на GitHub.

Автор: Pierce Boggan
Источник: Официальный блог Xamarin

Александр Алексеев
Александр Алексеев

Xamarin - разработчик. Работаю с .NET платформой с 2012 года, программирую в основном с использованием C#. За это время успел поработать с ASP.NET, Entity Framework, MSSQL, Git

Устройства iOS 10
xamarin-platform

Написать ответ