我还处于 MVVM Light 的早期阶段并尝试研究这个
我有一个使用页面的 WPF 应用程序。我拥有的一个页面称为 AVOPage,其后面是一个称为 AVOViewModel 的 ViewModel。
基本上我想做的就是每次创建页面时都会创建视图模型。当我关闭页面时,ViewModel 被销毁。所以基本上我每次都在这个页面上使用一个新的 ViewModel。
那么如何使用视图模型来做到这一点呢?
我还处于 MVVM Light 的早期阶段并尝试研究这个
我有一个使用页面的 WPF 应用程序。我拥有的一个页面称为 AVOPage,其后面是一个称为 AVOViewModel 的 ViewModel。
基本上我想做的就是每次创建页面时都会创建视图模型。当我关闭页面时,ViewModel 被销毁。所以基本上我每次都在这个页面上使用一个新的 ViewModel。
那么如何使用视图模型来做到这一点呢?
解决了我的问题。在 ViewModelLocator 中
public AVOViewModel AVO
{
get
{
if(!SimpleIoc.Default.ContainsCreated<AVOViewModel>())
SimpleIoc.Default.Register<AVOViewModel>();
return ServiceLocator.Current.GetInstance<AVOViewModel>();
}
}
public static void Cleanup()
{
// TODO Clear the ViewModels
if (SimpleIoc.Default.IsRegistered<AVOViewModel>())
SimpleIoc.Default.Unregister<AVOViewModel>();
}
最后在我的页面关闭事件中
void Page_Close()
{
PageFrame.Content = null;
ViewModel.ViewModelLocator.Cleanup();
}