在视图之间导航

时间:2013-06-07 09:27:09

标签: wpf mvvm prism

我对使用Prism的WPF很新,对MVVM模式来说还是新手。 现在我的应用程序分为3部分:

  • MainApp(包含Bootstrapper和Shell)
  • MainApp.Core(包含CoreModule,Views和ViewModels)
  • MainApp.Data(包含EF CodeFirst类,存储库和UnitOfWork)

我的Shell需要区域“MainRegion”和“SideBarRegion”。 SideBarRegion有一个简单的视图,有2个按钮,每个按钮触发一个Command。 我使用命令加载“MainRegion”中的视图。

现在我的CoreModule.cs类包含一个加载视图的方法:

private void LoadView(string regionName, object newView)
        {
            IRegion region = _RegionManager.Regions[regionName];
            var oldViews = region.Views;
            foreach (UserControl oldView in oldViews)
            {
                region.Remove(oldView);
            }
            region.Add(newView);
            region.Activate(newView);
        }

但是我不能在我的ViewModel中使用这个方法,因为我需要RegionManager。

所以我用Google搜索了一下,找到了使用Event Aggregator解决此问题的方法。 我现在不确定这个解决方案是否合适,希望有人能说出来。

即使这是一个很好的解决方案,我也不知道如何使用Prism的EventAggregator。 我找不到使用EventAggregator在视图之间导航的任何好帮助。

任何人都可以帮助我吗?我该如何解决我的问题?

问候

0 个答案:

没有答案