UWP - Как показать разные View (UserControl) в каждом PivotItem, когда Pivot привязан к списку ViewModels?
Я создаю приложение UWP, используя шаблон Template10 Minimal. У меня есть список ViewModels, которые имеют общий базовый класс. Они связаны с Pivot следующим образом:
ItemsSource="{Binding EnabledModels}"
Я настроил несколько шаблонов данных для сопоставления каждого конкретного типа ViewModel с представлением (UserControl), созданным для этого конкретного ViewModel, следующим образом:
<Pivot.Resources>
<DataTemplate x:Key="gettingStarted" x:DataType="vm:GettingStartedViewModel">
<v:GettingStartedPart DataContext="{Binding}"></v:GettingStartedPart>
</DataTemplate>
<DataTemplate x:Key="packageSelection" x:DataType="vm:PackageSelectionViewModel">
<v:PackageSelectionPart DataContext="{Binding}"></v:PackageSelectionPart>
</DataTemplate>
</Pivot.Resources>
Я не смог определить, как заставить представление действительно отображаться. В настоящее время он будет отображать только имя типа ViewModel. Я уверен, что я как-то испортил привязки.
Моя конечная цель - представить Pivot с серией экранов сбора данных, которые имеют общую базовую модель ViewModel, но каждый экран имеет свои собственные потребности в данных. Я хотел бы сохранить экраны как отдельные представления UserControl и выделенные модели представления, чтобы их было проще поддерживать независимо.
Я искал другие шаблоны для многоэкранного захвата данных в UWP, которые не требуют отдельных страниц, но им не повезло.
Спасибо за любое руководство, которое вы можете предоставить!
1 ответ
Мне удалось заставить DataTemplateSelector работать так, чтобы Pivot отображал PivotItem, содержащий соответствующий View (UserControl) для каждой ViewModel в моем списке EnabledModels
, Спасибо комментаторам Уиллу и АВК Найду.
Хороший ресурс для этой ситуации доступен здесь