【问题标题】:Hot to design the ViewModel for a windows phone 8 pivot app为 Windows Phone 8 枢轴应用程序设计 ViewModel 很热门
【发布时间】:2014-03-10 05:28:23
【问题描述】:

我正在使用 MVVM Light 创建一个 Windows Phone 8 Pivot 应用程序,我想知道如何设计我的视图模型。应用程序的每个支点(总共 3-4 个)处理不同的数据集合。

我正在考虑的选项是:

  1. 拥有一个 MainViewModel,其中包含不同枢轴的不同集合。 我在 MVVM 上阅读的最佳实践都要求(至少我是这样理解的)一个视图应该有一个 ViewModel,所以这个选项顺其自然。
  2. 每个数据透视表都有一个单独的 ViewModel 和一个 MainViewModel 来引用它们。这个选项在分离和代码结构方面对我来说更有意义。它确实使绑定和命令连接更加棘手。

你觉得哪个选项更好?

【问题讨论】:

  • 我个人会选择第一个,因为它使处理墓碑更容易。如果您的视图模型变得过于复杂,您可以轻松切换到第二种解决方案。

标签: c# wpf mvvm windows-phone-8


【解决方案1】:

只有一个视图模型,然后每个视图模型都有单独的集合。有必要的集合项来绑定到枢轴项。

查看

<phone:Pivot x:Name="TutoPivot" 
        SelectionChanged="PivotSelectionChanged">
        <!--Pivot item one-->
        <phone:PivotItem Header="{Binding Collection1.Title}">
            <!--Double line list with text wrapping-->
            <phone:LongListSelector Margin="0,0,-12,0"
                SelectionChanged="LongListSelector_SelectionChanged"
                LayoutMode="Grid"
                GridCellSize="150,150"
                ItemsSource="{Binding Collection1.Items}"
                ItemTemplate="{StaticResource NewSoundTemplate}"
                                    />

视图模型:

public class MainModel
{
    public ItemViewModel Collection1 { get; set; }
    public void LoadData()
    {
        Collection1=CreateCollection();

制作适当的数据上下文。

教程:Data bound and pivot tutorial

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-26
    • 2013-11-08
    • 1970-01-01
    相关资源
    最近更新 更多