【问题标题】:state handling in windows 8 using mvvmlight使用 mvvmlight 在 Windows 8 中进行状态处理
【发布时间】:2012-08-04 18:41:30
【问题描述】:

在 windows 8 中使用 mvvmlight 实现状态处理 mvvmligt 中是否有任何方法可用于管理 WinRT 中的状态?如何使用 WinRT 复制默认 Suspensionmanager 的功能?第二个是关于管理导航周期,即如果我从页面 A - > B 导航,然后进入挂起和关闭状态。当我重新启动需要打开页面 B 的应用程序时,按下返回键时我需要加载 A。如何在我的 WinRT 应用程序中使用 MVVM 灯有效地实现这一点?

【问题讨论】:

标签: windows-8 mvvm-light windows-runtime


【解决方案1】:

这些并不是真正的 MVVM Light 功能。你需要自己做这些。

一种选择是创建您自己的导航服务(参见示例here)。导航服务可以使用暂停管理器为应用程序构建/管理面包屑路径。如果您添加了其他方法:

public void GoToMostRecentPage()
{//blah}

您可以在应用启动时调用此方法并将用户带到相应的页面。

我会坚持使用 SuspensionManager。如果你想让它对 MVVM 更友好,你可以将它包装在一个服务中,根据需要注入到你的视图模型中。

【讨论】:

    【解决方案2】:

    您可能对可以从 NuGet 或我在上面链接到的 CodePlex 站点获得的开源 Okra App Framework 感兴趣。它从头开始设计,可与 Windows 8 和 MVVM 模式完美配合(您仍然可以使用 MVVM Light 基类)。

    它有一个导航管理器,可以自动处理您上面提到的所有事情 - 管理应用程序的导航堆栈、应用程序暂停/终止时堆栈的持久性,甚至允许视图模型通过一个简单的界面(例如 SuspensionManager适用于页面)。

    (免责声明:我是该项目的首席开发人员)

    【讨论】:

      【解决方案3】:

      我最初是为 WP7 编写的,并且一直在为 Win8 RT 进行更新。它允许您将属性附加到要保留在视图模型中的属性,然后 PersistenceManager 在应用程序暂停时对它们进行脱水(序列化到文件)并在应用程序恢复时重新脱水。

      有WP7和Win8的例子,基本的MVVM模式和MVVM Light

      Obelisk

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-26
        • 2012-08-05
        • 2019-07-19
        • 1970-01-01
        相关资源
        最近更新 更多