我对使用 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 在视图之间导航,我找不到任何好的帮助。
谁能帮我?我该如何解决我的问题?
问候