我一直在研究 MVVM 模式并在 Windows Phone 8 应用程序中将其付诸实践,我有一个关于在应用程序中初始化和访问 ViewModel 的最佳实践的问题。
当我从 WP8 SDK 模板创建数据绑定应用程序时,我注意到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?