C# Windows 8应用商店应用程序全局视图模型
我目前正在开发一个应用程序,有一些“架构混乱” 我正在实现我自己的(非常简单的)MVVM模式,理想情况下它只有一个实例,并且大约每60秒更新一次 在Windows Phone 7中对以前的应用程序执行Xaml(Silverlight)时,我能够将ViewModel放入我的应用程序类(应用程序开始的位置),然后在完成初始加载过程后,我能够在整个应用程序中访问这个模型 我一直在搜索互联网站并下载教程/示例,看看是否有任何地方可以为Windows 8应用商店应用提供明确的答案 现在我想知道这是否是在Windows8商店应用程序中工作的正确方法 以下是我探索过的几种工作方式:C# Windows 8应用商店应用程序全局视图模型,c#,xaml,mvvm,windows-8,C#,Xaml,Mvvm,Windows 8,我目前正在开发一个应用程序,有一些“架构混乱” 我正在实现我自己的(非常简单的)MVVM模式,理想情况下它只有一个实例,并且大约每60秒更新一次 在Windows Phone 7中对以前的应用程序执行Xaml(Silverlight)时,我能够将ViewModel放入我的应用程序类(应用程序开始的位置),然后在完成初始加载过程后,我能够在整个应用程序中访问这个模型 我一直在搜索互联网站并下载教程/示例,看看是否有任何地方可以为Windows 8应用商店应用提供明确的答案 现在我想知道这是否是在W
- 在MainPage.cs文件中有ViewModel,然后在每个导航方法上,我都将ViewModel作为页面参数传递给下一个页面使用
- 将ViewModel放在App.cs文件中,尝试了此操作,但似乎无法从任何其他页面访问此操作
- 具有静态ViewModel类,该类保存应用程序的所有信息。没有看到任何其他项目/样本已经这样做了,所以我有点不愿意“脱离”规范并这样做
再次感谢:)一般来说,大多数应用程序对每个页面使用不同的视图模型,因此您通常不会看到共享视图模型的示例。为每个视图使用单独的视图模型(带有特定于页面的代码)可能更好,但使用共享数据模型更好 如果您确实希望在所有页面之间共享ViewModel,您可以尝试在ViewModel上使用静态“实例”属性(而不是静态类) 比如说,
public class MyViewModel
{
private static MyViewModel instance;
private MyViewModel()
{
// Private constructor
}
public static MyViewModel Instance
{
get
{
if (instance == null)
instance = new MyViewModel();
return instance;
}
}
}
一般来说,大多数应用程序对每个页面使用不同的视图模型,因此您通常不会看到具有共享视图模型的示例。为每个视图使用单独的视图模型(带有特定于页面的代码)可能更好,但使用共享数据模型更好 如果您确实希望在所有页面之间共享ViewModel,您可以尝试在ViewModel上使用静态“实例”属性(而不是静态类) 比如说,
public class MyViewModel
{
private static MyViewModel instance;
private MyViewModel()
{
// Private constructor
}
public static MyViewModel Instance
{
get
{
if (instance == null)
instance = new MyViewModel();
return instance;
}
}
}