标签: winrt-xaml
我有两页Windows 8应用程序。视图页面和设置页面。两个页面都使用相同的视图模型。我可以在页面之间传递视图模型来使用它,但后来我无法保存状态,因为我在页面之间传递了一个复杂的类型(它与它们如何保留引用有关,并阻止你保存)。
所以我想我需要在每个页面上保存并重新加载我的视图模型?我无法找到关于什么是最佳实践的良好参考。
答案 0 :(得分:2)
通常WinRT通过Root框架导航,在App.cs中初始化。最好在MainPage中定义Frame对象,并在此框架中导航所有页面。您的frame datacontext可以绑定到ViewModel。
答案 1 :(得分:0)
您可以使用Frame在页面导航之间保存ViewModel状态。我在写的应用程序中有类似的情况(不同页面的相同视图模型)并且它完美地工作。它甚至会为你缓存页面。
我blogged最近关于将Frame与ViewModels一起使用,但它更多的是关于设置帧交互而不是导航/缓存行为。