使用mvvmlight在Windows 8中处理状态

时间:2012-08-04 18:41:31

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

使用mvvmlight在Windows 8中实现状态处理 是否有任何方法可以在mvvmligt中管理WinRT中的状态?如何使用WinRT复制默认Suspensionmanager的功能?第二个是关于管理导航周期,即如果我从页面A导航 - > B.和暂停和关闭状态。当我重新启动需要打开页面B的应用程序时,我需要加载A.如何在WinRT应用程序中使用MVVM灯有效地实现它?

3 个答案:

答案 0 :(得分:0)

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

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

public void GoToMostRecentPage()
{//blah}

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

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

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:-1)

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

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

Obelisk