我正在使用Template10 Minimal模板构建UWP应用程序 . 我有一个共享一个公共基类的ViewModel列表 . 它们与Pivot绑定如下:
ItemsSource="{Binding EnabledModels}"
我设置了多个数据模板,将每个ViewModel具体类型映射到为该特定ViewModel创建的View(UserControl),如下所示:
<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>
我无法确定如何让View实际显示 . 目前它只显示ViewModel的类型名称 . 我确定我以某种方式弄乱了绑定 .
我的最终目标是为Pivot提供一系列数据收集屏幕,这些屏幕都共享一个共同的基础ViewModel,但每个屏幕都有自己的数据需求 . 我想将屏幕保持为单独的UserControl视图和专用的ViewModel,以使它们更容易独立维护 .
我已经在UWP中寻找其他用于多屏幕数据捕获的模式,这些模式不需要单独的页面,但没有任何运气 .
感谢您提供的任何指导!
1 回答
我能够让DataTemplateSelector工作,所以Pivot会在我的
EnabledModels
列表中为每个ViewModel显示一个包含相应View(UserControl)的PivotItem . 感谢评论者Will和AVK Naidu .可用于此情况的良好资源here