WpfアプリケーションのナビゲーションにPrismを使用する
-
05-07-2019 - |
質問
Wpfで新しいプロジェクトを開始し、現在Prismの使用を検討しています。今のところ、Prismを使用してアプリケーションのナビゲーションを設定しようとしています。残念ながら、フレームワークの経験が足りないため、始めるのが少し難しくなります。
最初の課題をより正確にするために、「ナビゲーション/メニュー」のあるアプリケーションを用意しました。地域と「メイン」領域。ナビゲーションリージョンは、すべての異なるメインリージョンビューで同じになるため、shell.xamlでメニューを定義します。メニュー項目をクリックすると、Prismを使用して領域にビューを追加したいです。最初;これは通常、Prismを使用するものですか?もしそうなら;典型的なアプローチは何ですか?そして、私はより構造的なレベルで..
最終的には、Prismを使用するとアプリケーションのスケーラブル性が大幅に向上し、IoCコンテナーのような他の利点も得られると思います。だから私はそれを使用したい-私は最初のステップを通過することができた場合..
解決
私は、メニューに貢献するモジュールのCAG感覚を少し使用したサンプルと、リージョンにビューを追加する方法を手に入れました。物事をもう少し明確にする必要があります。
http://dl.getdropbox.com/u/376992/CAGMenus.zip
これが役立つことを願って、 アンダーソン
他のヒント
ブンブスカ、
Prismは、この機能を実現するための優れた方法であり、プリンシパルを理解すれば非常に簡単です。
これを行う方法は、メインリージョンの起動イベントにイベントリスナーを追加することです。メニューでアイテムを選択すると、イベントが発生します。その場合、メインリージョンがイベントを処理し、メインリージョンから現在のビューをクリアします。次に、使用する新しいビューを作成して追加します。
メインリージョンは次のようになります。
public void Initialize()
{
Events.PageEvents.ClickedEvent1 ce1 = this.eventAggregator.GetEvent<Events.PageEvents.ClickedEvent1>();
ce1.Subscribe(LoadView, ThreadOption.UIThread, true);
}
private void LoadView(Events.HomePageEvents.Clicked clicked1)
{
IRegion mainRegion = RegionManager.Regions["MainRegion"];
foreach (object view in new List<object>mainRegion.Views))
{
RegionManager.Regions["MainRegion"].Remove(view);
}
IModule firstModule = Container.Resolve<Modules.FirstModule>();
firstModuleModules.Initialize();
}
これがあなたを正しい方向に向けることを願っています。さらに情報が必要な場合はお知らせください。