0

我有一个两页的 Windows 8 应用程序。一个视图页面和一个设置页面。两个页面使用相同的视图模型。我可以在页面之间传递视图模型以使用它,但是我无法保存状态,因为我在页面之间传递了一个复杂的类型(它与它们如何保持引用有关,并阻止你保存)。

所以我想我需要在每个页面上保存并重新加载我的视图模型?我找不到关于什么是最佳实践的良好参考。

4

2 回答 2

2

通常 WinRT 导航通过在 App.cs 中初始化的根框架。最好在 MainPage 中定义一个 Frame 对象并在该框架内导航所有页面。您的框架数据上下文可以绑定到 ViewModel。

于 2013-02-11T07:13:02.913 回答
0

您可以使用Frame在页面导航之间保存 ViewModel 状态。我正在编写的应用程序中有类似的情况(不同页面的视图模型相同),并且效果很好。它甚至会为您缓存页面。

我最近写了一篇关于将 Frame 与 ViewModels 结合使用的博客,但它更多的是关于设置框架交互而不是导航/缓存行为。

于 2013-02-11T21:57:43.547 回答