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