Довольно часто, при работе над приложением .NET MAUI нам требуется сделать привязку не к отдельному объекту и его свойству, а сразу к списку объектов. Например, чтобы вывести на экран список пользователей, проектов, задач и так далее. На данный момент мы уже знаем про такой элемент управления, как Picker
. В этой части мы рассмотрим то, как можно заполнить этот элемент списком объектов, а также раздеремся с шаблонами данных на примере еще одного элемента — CollectionView
.
Привязка в .NET MAUI
Привязка в .NET MAUI. Привязка к произвольным объектам (интерфейс INotifyPropertyChanged)
До сих пор, при изучении привязки в .NET MAUI мы ограничивались примерами, в которых в качестве источника привязки выступали объекты типов, определенные в .NET MAUI в которых уже всё настроено для обеспечения нормальной работы приложения. При этом, инфраструктура .NET MAUI позволяет привязываться вообще к любым объектам в приложении, в том числе и к объектам типы которых разрабатываются нами самостоятельно.
Привязка в .NET MAUI. Относительная привязка
Относительная привязка (relative binding) позволяет задавать источник привязки относительно положения целевого объекта в визуальном дереве элементов. Относительные привязки задаются с использованием расширения разметки RelativeSource
.
Привязка в .NET MAUI. Свойства и параметры конвертеров значений
Привязка в .NET MAUI. Форматирование строк и конвертеры значений (IValueConverter и IMultiValueConverter)
Не всегда бывает удобным (и возможным) отображать в элементе управления или передавать в свойство целевого объекта текущее значение свойства источника привязки. Например, нам может потребоваться каким-либо образом форматировать строку со значением из источника прежде, чем вывести её в тексте метки. Или привязываемые свойства вообще не совпадают по типу — одно свойство имеет тип Double
, а второе, скажем Color
и нам необходимо «вытащить» из Color
, например, только значение яркости и так далее. В этом случае мы можем использовать при привязке данных форматирование строк или написать свой конвертер значений и применить его в привязке.
Привязка в .NET MAUI. Режим привязки
Режим привязки в .NET MAUI определяет в какую сторону будет работать привязка: от источника к цели, от цели к источнику, в обе стороны и так далее.
Привязка в .NET MAUI. Основы привязки
Обычно, в любом приложении, будь то приложение .NET MAUI, Blazor или любое другое приложение, можно выделить, как минимум, две части — это интерфейс пользователя, используя который, пользователь взаимодействует с приложением (frontend) и часть, в которой происходит сбор, обработка и хранение данных (backend). Одна из задач, которая стоит перед разработчиком приложения состоит в том, чтобы организовать взаимодействие этих частей — когда пользователь вводит какие-либо данные, то эти данные должны быть каким-либо образом использованы приложением и наоборот — если приложение производит какие-либо изменения в данных, то эти данные должны отобразиться в интерфейсе пользователя. Одним из распространенных решений этой задачи является использование событий: один объект сообщает посредствам событий об изменениях, другой (или другие объекты) — производит какую-либо работу по обработке этих изменений. Однако, наличие большого количества разнообразных объектов приводит к такому же разнообразию обработчиков событий в приложении и, как следствие, код приложения становится трудночитаемым и поддерживаемым, содержит большой объем однотипного стандартного кода. Механизм привязки позволяет автоматизировать процесс передачи данных от одного объекта к другому.