我目前正在开发一款应用,并且遇到了一些“架构混淆”。
我正在实现我自己的(非常简单的)MVVM模式,理想情况下,它只有一个实例,并且每60秒更新一次。
在以前的应用程序中使用Windows Phone 7中的Xaml(Silverlight)时,我能够将ViewModel放入我的App类(应用程序开始的位置),然后我可以在整个应用程序中访问这个模型初始加载过程已经完成。
我一直在搜索互联网并下载教程/示例,看看是否有任何地方可以为Windows 8商店应用提供明确的答案。
现在我想知道这是否是在Windows 8商店应用程序中正常工作的方式?
以下是我探索过的几种工作方式:
我确信这已被考虑过,并且有一种方法可以在Windows 8商店应用程序中执行此操作,但是我正在寻找一个明确的答案以及我拥有的许多官方(MSDN)示例/教程遇到的并没有真正解决这个问题。许多样本似乎涵盖了可用API的非常小的方面。
总结:如何构建Windows 8商店应用程序并拥有一个ViewModel,我可以在整个应用程序中绑定/使用所有页面?这是否需要在应用程序方面进行体系结构更改以及数据的存储方式,还是有一种我错过的方式可以使我的ViewModel全局化?
再次感谢:)
答案 0 :(得分:3)
通常,大多数应用程序为每个页面使用不同的视图模型,因此您不经常看到具有共享视图模型的示例。为每个视图使用单独的视图模型(使用页面特定的代码),但使用共享数据模型可能会更好。
如果您真的希望在所有页面之间共享ViewModel,可以在ViewModel上尝试静态的“Instance”属性(而不是静态类)。
例如,
public class MyViewModel
{
private static MyViewModel instance;
private MyViewModel()
{
// Private constructor
}
public static MyViewModel Instance
{
get
{
if (instance == null)
instance = new MyViewModel();
return instance;
}
}
}