Привязка данных Xamarin.Forms

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

Привязка данных — это способ связывания свойств двух объектов так, чтобы изменения в одном свойстве автоматически отражались в другом. Привязка данных — неотъемлемая часть архитектуры приложения Model-View-ViewModel (MVVM).

Проблема связывания данных

Приложение Xamarin.Forms состоит из одной страницы или нескольких, каждая из которых обычно содержит множество объектов пользовательского интерфейса — представлений. Одна из основных задач программы — обеспечить синхронизацию этих представлений и отслеживать разные значения или элементы выбора, которые они представляют. Часто представления являются значениями из базового источника данных. Пользователь управляет этими представлениями для изменения данных. При изменении представления эти изменения должны отобразиться в базовых данных. Аналогично при изменении базовых данных изменение должно быть отражено в представлении.

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

Решение привязки данных

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

Один из двух объектов, который используется в привязке данных, почти всегда является элементом, полученным из View и формирует часть визуального интерфейса страницы. Другой объект является:

  • другим производным классом View, который обычно находится на той же странице;
  • объектом в файле кода.

В демонстрационных программах, как в примере DataBindingDemos привязки данных между двумя производными классами View часто показываются для упрощения и удобочитаемости. Однако те же принципы можно применить к привязкам данных между View и другими объектами. Когда приложение создается с помощью архитектуры "Модель — представление — модель представления" (MVVM), класс с базовыми данными часто называется моделью представления.

Привязки данных изучаются в следующей серии статей:

Основные привязки

Вы узнаете разницу межу целевым и исходным объектом привязки данных, а также увидите простые примеры привязок в коде и XAML.

Режим привязки

Вы узнаете, как режим привязки может управлять потоком данных между двумя объектами.

Форматирование строк

Использование привязки данных для форматирования и отображения объектов в виде строк.

Путь привязки

Подробное изучение свойства Path привязки данных для получения доступа к вложенным свойствам и коллекции участников.

Привязка преобразователей значений

Использование преобразователей значений привязок для изменения значений в привязке данных.

Относительные привязки

Использование относительных привязок, чтобы задать источник привязки относительно положения целевого объекта привязки.

Привязка резервных значений

Повышение надежности привязок данных с помощью определения значений отката, которые будут использоваться при сбое привязки.

Множественные привязки

Присоедините коллекцию объектов Binding к одному свойству целевого объекта привязки.

Командный интерфейс

Реализация свойства Command с привязками данных.

Скомпилированные привязки

Использование скомпилированных привязок для повышения их производительности.