首页 文章

UWP - 当Pivot绑定到ViewModel列表时,如何在每个PivotItem中显示不同的View(UserControl)?

提问于
浏览
0

我正在使用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 回答

  • 0

    我能够让DataTemplateSelector工作,所以Pivot会在我的 EnabledModels 列表中为每个ViewModel显示一个包含相应View(UserControl)的PivotItem . 感谢评论者Will和AVK Naidu .

    可用于此情况的良好资源here

相关问题