Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lawrence_shaun_introducing_net_maui_build_and_deploy_crosspl.pdf
Скачиваний:
46
Добавлен:
26.06.2023
Размер:
5.15 Mб
Скачать

Chapter 6 Creating Our Own Layout

WidgetTemplateSelector

The main purpose of this implementation is to provide a conversion between the widget view models that you will be storing on your FixedBoardPageViewModel and something that can actually be rendered on the screen. You are going to depend on the WidgetFactory you have just created. Create the class under the root project folder.

using WidgetBoard.ViewModels;

namespace WidgetBoard.Views;

public class WidgetTemplateSelector : DataTemplateSelector

{

private readonly WidgetFactory widgetFactory;

public WidgetTemplateSelector(WidgetFactory widgetFactory)

{

this.widgetFactory = widgetFactory;

}

protected override DataTemplate OnSelectTemplate(object item, BindableObject container)

{

if (item is IWidgetViewModel widgetViewModel)

{

return new DataTemplate(() => widgetFactory.Create Widget(widgetViewModel));

}

return null;

}

}

193