MVVM光在需要时创建和处理视图

本文关键字:创建 处理 视图 MVVM | 更新日期: 2023-09-27 18:15:04

我还在MVVM Light的早期,并尝试研究这个

我有一个使用页面的WPF应用程序。我有一个叫做AVOPage的页面,它后面是一个叫做AVOViewModel的视图模型。

基本上我想做的就是每次创建页面时视图模型都会被创建。当我关闭页面时,ViewModel被销毁。所以基本上我每次都用一个新的ViewModel。

我如何在视图模型中做到这一点呢?

MVVM光在需要时创建和处理视图

解决了我的问题。在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();
}