Привет, ребята! В этом блоге мы узнаем, как использовать DataTemplate и TemplateSelector в .NET MAUI/Xamarin Forms.

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

DataTemplateSelector используется для выбора шаблона данных, определенного на основе состояния данных во время выполнения.

Реализация DataTemplateSelector

Чтобы определить DataTemplateSelector, нам нужно создать класс, который расширяется от класса DataTemplateSelector.

public class UserTemplateSelector : DataTemplateSelector

А теперь определите DataTemplates в соответствии с нашими требованиями и переопределите метод OnSelectTemplate, чтобы выбрать или выбрать DataTemplate на основе состояния/типа данных.

Использование DataTemplateSelector

Чтобы использовать DataTemplateSelector, который мы создали выше, нам сначала нужно включить пространство имен нашего DataTemplateSelector.

В моем случае я создал отдельную папку с именем TemplateSelectors для класса UserTemplateSelctor.

xmlns:templateSelector="clr-namespace:MyApp.TemplateSelectors"

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

Примечание. Каждому DataTemplate присваивается уникальный ключ с использованием атрибута x:Key, а DataTemplateSelector также присваивается ключ, который будет использоваться позже.

Наконец, просто используйте этот ключ DataTemplateSelector внутри ListView или любого другого представления, которое поддерживает DataTemplateSelector.

<ListView ItemTemplate="{StaticResource userTemplateSelector}"/>

Пример кода приложения

Модель пользователя

Выбор шаблонов пользователей

MainPage.xaml

MainPage.xaml.cs

Спасибо, что следите за блогом до сих пор. Удачного кодирования :D