0

我对使用 Prism 的 WPF 很陌生,对 MVVM 模式也很陌生。现在我的应用程序分为 3 个部分:

  • MainApp(包含引导程序和外壳)
  • MainApp.Core(包含 CoreModule、视图和视图模型)
  • MainApp.Data(包含 EF CodeFirst 类、存储库和 UnitOfWork)

我的外壳必须区域“MainRegion”和“SideBarRegion”。SideBarRegion 有一个简单的视图,有 2 个按钮,每个按钮触发一个命令。我使用命令在“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。

所以我用谷歌搜索了一下,找到了一种用事件聚合器解决这个问题的方法。我现在不确定这个解决方案是否是一个好的解决方案,希望有人能告诉我。

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

谁能帮我?我该如何解决我的问题?

问候

4

0 回答 0