私は Prism を使用した WPF を初めて使用し、MVVM パターンを初めて使用します。現在、私のアプリケーションは 3 つの部分に分割されています。
- MainApp (Bootstrapper とシェルを含む)
- MainApp.Core (CoreModule、ビュー、ViewModel を含む)
- MainApp.Data (EF CodeFirst クラス、リポジトリ、UnitOfWork を含む)
私のシェルには、「MainRegion」と「SideBarRegion」の領域が必要です。SideBarRegion には、それぞれが Command をトリガーする 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);
}
しかし、RegionManager が必要なため、ViewModel からこのメソッドを使用することはできません。
そこで、少しググって、Event Aggregator でこの問題を解決する方法を見つけました。この解決策が良いものかどうかはわかりませんが、誰かが教えてくれることを願っています.
たとえそれが良い解決策だったとしても、Prism の EventAggregator の使い方がわかりません。EventAggregator を使用してビュー間を移動するための適切なヘルプが見つかりません。
誰でも私を助けることができますか?どうすれば問題を解決できますか?
挨拶