我仍处于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();
}

10-06 02:38