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

UWP - How to show different View (UserControl) in each PivotItem when Pivot bound to list of ViewModels?

我正在使用 Template10 Minimal 模板构建 UWP 应用。我有一个共享公共基础 class 的 ViewModel 列表。它们绑定到一个 Pivot 如下:

ItemsSource="{Binding EnabledModels}"

我设置了多个数据模板以将每个 ViewModel 具体类型映射到为该特定 ViewModel 创建的视图 (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>

我无法确定如何让视图实际显示。目前它只会显示 ViewModel 的类型名称。我确定我以某种方式搞砸了绑定。

我的最终目标是展示一个具有一系列数据收集屏幕的 Pivot,这些屏幕共享一个公共的基础 ViewModel,但每个屏幕都有自己的数据需求。我想将屏幕保留为单独的 UserControl 视图和专用的 ViewModel,以使它们更易于独立维护。

我已经在 UWP 中寻找其他不需要单独页面的多屏数据捕获模式,但没有成功。

感谢您提供的任何指导!

我能够让 DataTemplateSelector 工作,因此 Pivot 会显示一个 PivotItem,其中包含我 EnabledModels 列表中每个 ViewModel 的适当视图 (UserControl)。感谢评论者 Will 和 AVK Naidu。

针对这种情况的良好资源可用 here