我一直在研究MVVM模式,并在Windows Phone 8应用程序中实践它,我有一个关于在应用程序中初始化和访问ViewModels的最佳实践问题。
当我从WP8 SDK模板中创建一个Databound Application时,我注意到在App.xaml.cs文件中有这段代码:
据我了解,这意味着App类将MainViewModel作为静态成员进行存储,并且当应用程序被激活时,ViewModel将被加载。
在这种情况下,我有以下问题:
当我从WP8 SDK模板中创建一个Databound Application时,我注意到在App.xaml.cs文件中有这段代码:
public static MainViewModel ViewModel
{
get
{
// Delay creation of the view model until necessary
if (viewModel == null)
viewModel = new MainViewModel();
return viewModel;
}
}
private void Application_Activated(object sender, ActivatedEventArgs e)
{
// Ensure that application state is restored appropriately
if (!App.ViewModel.IsDataLoaded)
{
App.ViewModel.LoadData();
}
}
据我了解,这意味着App类将MainViewModel作为静态成员进行存储,并且当应用程序被激活时,ViewModel将被加载。
在这种情况下,我有以下问题:
如果我的应用程序有多个ViewModel,它们是否都会作为成员存储在App.xaml.cs 文件中?
如果每个ViewModel的数据同时加载,我该如何管理我的应用程序内存?是否有可能卸载每个ViewModel的数据并仅加载由我的View使用的ViewModel?