【问题标题】:Is there a common navigation convention in an MVVM Light Windows Phone application?MVVM Light Windows Phone 应用程序中是否有通用的导航约定?
【发布时间】:2011-11-12 02:24:02
【问题描述】:

随着我的应用变得越来越大,我发现相同类型的实体越来越多地出现在整个应用程序中,通常出现在列表框中。

当有人点击实体时,我想导航到该实体的详细视图。

产品就是一个例子:它按类别出现在产品列表中,出现在搜索结果中,或者它可能显示为已保存的收藏夹。在我的例子中,所有这些都来自本地 SQLCE 存储中的一个表。

每当我以某种方式显示实体时,我基本上都会删减相同的代码:订阅列表框上的 SelectionChange 事件,提取实体,使用 MVVM Light 消息传递来表示所选实体具有改变,然后调用 NavigationService 来做它的事情。

有没有人做过类似的事情,如果有,你有什么想法?或者更重要的是,如果我忽略了一些 MVVM Light 工具包约定,请您指出正确的方向吗?

【问题讨论】:

    标签: windows-phone-7 mvvm-light windows-phone-7.1


    【解决方案1】:

    您现在是从代码隐藏还是视图模型调用 NavigationService?如果是前者,您可以检查 WP7 Navigation arcticle by LBugnion 以从 VM 触发它。如果将其与 EventToCommand 行为 (like in here) 结合使用,您应该能够在以实体为参数的 VM 中创建一个漂亮而干净的“MyEntitySelected”命令。

    【讨论】:

      【解决方案2】:

      我认为这里的问题是,如何在不每次剪切/粘贴相同代码的情况下处理这个问题?如果是这种情况,可能会尝试将实体/列表框的东西打包到 XAML 用户控件中!看看这个:http://www.windowsphonegeek.com/articles/Creating-a-WP7-Custom-Control-in-7-Steps

      然后如果需要不同的表示,你可以看看这个:http://www.windowsphonegeek.com/articles/Implementing-Windows-Phone-7-DataTemplateSelector-and-CustomDataTemplateSelector(这个例子在一个列表框中做了不同的样式,但是你可以改变这个,只在每个不同的页面上应用不同的样式和一个列表框就可以了)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-08
        • 2014-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多