質問

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();

}

これがあなたを正しい方向に向けることを願っています。さらに情報が必要な場合はお知らせください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top