数据绑定Windows Phone的全景与MVVM设计(Databound windows phon

2019-10-31 12:23发布

请MVVM设计/理解问题帮助。

既然我们有以下UI结构的Windows Phone应用程序:

MainPage.xaml中体:

<views:PanoramaView/>

DataContext is set via MVVM Light view-model locator to a static MainViewModel class instance.

查看/ PanoramaView.xaml体:

<UserControl.DataContext>
        <ViewModels:PanoramaViewModel/>
</UserControl.DataContext>

<StackPanel x:Name="LayoutRoot">
        <controls:Panorama Background="{Binding PanoramaBackgroundBrush}"
                           ItemsSource="{Binding PanoramaItems}"
                           ItemTemplate="{StaticResource panoramaItemTemplate}"
                           />
</StackPanel>

在这一点上我已经在一个偶然的问题- 我应该在情况下,我想我所有的PanoramaItems要由不同的用户控件的吗? 如果我定义了一个全景的项目模板,我死命个个要双修。 但我的目的是使serveral的,compeltely不同全景物品。 我想有一个类(大概PanoramaViewModel ),让我这在给定时刻显示全景项的控制。

所以必须有一个办法,我仍然坚持MVVM,但能够实例化新的视图(全景项),并将其注入到一个PanoramaItems我的收藏PanoramaViewModel 。 在哪里,我该怎么办呢?

Answer 1:

你必须定义资源键定义与所呈现的不同的视图模型类类型的视图项目视图二传手数据模板,并从公共基类(PanoramaViewModel,即)派生VM类



Answer 2:

在WPF我应该使用DataTemplateSelector来解决我的设计问题。 由于Windows Phone应用更像是Silverlight的,我可以实现它自己。 如何是一个很好的例子此文章, 这一 silverlight.net论坛主题。



文章来源: Databound windows phone panorama with MVVM design