2017-05-05 33 views
0

我使用Template10 Minimal模板構建UWP應用程序。我有一個共享公共基類的ViewModel列表。他們被綁定到數據透視如下:UWP - 當數據透視綁定到ViewModels列表時,如何在每個數據透視項中顯示不同的視圖(UserControl)?

ItemsSource="{Binding EnabledModels}"

我已經爲特定視圖模型創建設置多個數據模板來映射每個視圖模型具體類型的視圖(用戶控件),如下所示:

<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的類型名稱。我確信我以某種方式搞砸了綁定。

我的最終目標是提供一系列數據收集屏幕,它們共享一個共同的基礎ViewModel,但每個屏幕都有自己的數據需求。我想將屏幕保持爲單獨的UserControl視圖和專用的ViewModels,以使它們更易於獨立維護。

我在UWP中尋找了多屏幕數據捕獲的其他模式,不需要單獨的頁面,但沒有任何運氣。

感謝您提供任何指導!

+1

在WPF中你會使用的DataTemplates,無論是與自定義DataTemplateSelector,或在EnabledModels每個實例良好的資源將是一個獨特的類型通過其數據類型屬性匹配到一個DataTemplate。我不確定UWP是否也可以用DataTemplates這樣做,但是您可以研究它。 – Will

+1

搜索DataTemplateSelector – AVK

回答

0

我能夠讓DataTemplateSelector工作,因此Pivot會在我的列表EnabledModels的列表中顯示一個PivotItem,其中包含每個ViewModel的相應View(UserControl)。感謝評論者Will和AVK Naidu。

針對這種情況提供here

相關問題