2

私はSilverlight5(MefBootstrapper)を使用してPrismV4.1で練習しています。残念ながら、私はこのような状況の実装を見つけることができません:

  1. Shell.xamlに2つのリージョンがあります。
  2. 私のモジュール(modulescatalog.xamlで説明されているxapファイル)(Module1およびModule2)はこの領域に挿入されます。
  3. module(たとえばModule1)の私のビューの1つには、独自のリージョンがあります。

そして、プリズムフレームワークの力を利用して、このModule1ビューに別のモジュールを挿入したいと思います。実際、このモジュールは、独自のモジュールを備えた小さなプリズムアプリケーションである必要があり、Module2などにパラメータを渡す可能性があります。

これを実装する方法はありますか?

つまり、Module1内のビューで独自のリージョンを作成できるため、依存するモジュールでこのリージョンにビューを挿入できますか?

4

1 に答える 1

2

はい、できます。依存モジュールがロードされた後、ビューをこのリージョンに登録するだけです。たとえばIModule.Initialize、依存モジュールのメソッドで実行できます。

public void Initialize()
{
    regionManager.RegisterViewWithRegion("Module1RegionName", () => serviceLocator.GetInstance<DependentModuleView>());
}

次に、このビューに移動したり、登録後すぐにいつでもアクティブにすることができます。

regionManager.RequestNavigate("Module1RegionName", new Uri("DependentModuleView", UriKind.Relative));

//or resolve the view and activate it
var view = serviceLocator.GetInstance<DependentModuleView>();
var region = regionManager.Regions["Module1RegionName"];
region.Activate(view);

モジュール間の通信に関しては、いくつかのオプションがあります。詳細については、疎結合コンポーネント間の通信を参照してください。

于 2012-09-25T18:26:01.680 に答える