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

C# UWP-当Pivot绑定到ViewModels列表时,如何在每个PivotItem中显示不同的视图(UserControl)?,c#,mvvm,uwp,uwp-xaml,template10,C#,Mvvm,Uwp,Uwp Xaml,Template10,我正在使用Template10最小模板构建一个UWP应用程序。我有一个共享公共基类的ViewModels列表。它们被绑定到轴,如下所示: <Pivot.Resources> <DataTemplate x:Key="gettingStarted" x:DataType="vm:GettingStartedViewModel"> <v:GettingStartedPart DataContext="{Binding}"></v:Ge

我正在使用Template10最小模板构建一个UWP应用程序。我有一个共享公共基类的ViewModels列表。它们被绑定到轴,如下所示:

<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>
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的类型名称。我肯定我把装订弄得一团糟

我的最终目标是展示一个具有一系列数据收集屏幕的透视图,这些屏幕都共享一个公共的基本视图模型,但每个屏幕都有自己的数据需求。我希望将屏幕保留为单独的用户控制视图和专用视图模型,以便于独立维护

我在UWP中寻找了其他的多屏幕数据捕获模式,这些模式不需要单独的页面,但运气不好


感谢您提供的任何指导

我能够让DataTemplateSelector工作,因此Pivot将显示一个PivotItem,其中包含我的
EnabledModels
列表中每个ViewModel的相应视图(UserControl)。感谢评论员威尔和阿夫克·奈杜


在WPF中,您可以使用DataTemplates,或者使用自定义DataTemplateSelector,或者EnabledModels中的每个实例都是通过其DataType属性与DataTemplate匹配的独特类型。我不确定UWPs是否也以这种方式处理DataTemplates,但您可以对此进行研究。搜索DataTemplateSelector