0

このモジュール構造がある場合:

ModuleA
      *View/View_A
      *Controller/ControllerA
ModuleB
      *View/View_B
      *ViewModel/ViewModel_B  (view model for View_B)
      *Controller/Controller_B 
  1. ControllerA が UriQuery を使用して View_A 内の領域に View_B を表示する
    方法

  2. controllerB が UriQuery を使用して View_A 内の領域に View_B を表示する方法

  3. View_A の領域に View_B を表示するのに適しています

前もって感謝します

4

1 に答える 1

0

あなたの質問に正確に答えるかどうかはわかりません。ただし、Prism2.2 に付属のサンプル プロジェクト -> クイックスタート -> UI コンポジション -> ビュー インジェクションを参照することをお勧めします。これは Unity を使用し、例は Silverlight と WPF にあります。

これには、別のモジュールからビューを表示する方法のサンプルがあります。他のプロジェクトのコントローラーを呼び出すのではなく、プレゼンターを呼び出します。

 IProjectsListPresenter projectsListPresenter = this.container.Resolve<IProjectsListPresenter>();
 projectsListPresenter.SetProjects(employee.EmployeeId);

 IRegionManager detailsRegionManager = detailsRegion.Add(detailsPresenter.View, employee.EmployeeId.ToString(CultureInfo.InvariantCulture), true);
 IRegion region = detailsRegionManager.Regions[RegionNames.TabRegion];
 region.Add(projectsListPresenter.View, "CurrentProjectsView");
 detailsRegion.Activate(detailsPresenter.View);

ビューをアクティブにするには、 activate メソッドを使用します。または、特定の要件/ナビゲートする必要がある場合は、UriQuery で detailsRegionManager.RequestNavigate を使用できます。(私はリクエストナビゲートを自分で試していません:)

さらに、この投稿を確認してください

http://compositewpf.codeplex.com/discussions/402860#post940396

お役に立てれば。

幸運を!

于 2013-02-14T15:36:15.137 に答える