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

时间:2017-05-05 17:27:50

标签: c# mvvm uwp uwp-xaml template10

我正在使用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中寻找其他用于多屏数据捕获的模式,这些模式不需要单独的页面但是没有运气。

感谢您提供的任何指导!

0 个答案:

没有答案