2

我正在使用 Silverlight 5 (MefBootstrapper) 在 Prism V4.1 中练习。不幸的是,我找不到这样的情况的实现:

  1. 我的 Shell.xaml 中有 2 个区域。
  2. 我的模块(modulescatalog.xaml 中描述的 xap 文件)(Module1 和 Module2)被注入到这个区域;
  3. 我在模块(例如模块 1)中的一个观点有它自己的区域。

我想使用 prism 框架的强大功能将另一个模块注入到这个 Module1 视图中。事实上,这个模块应该是一个小棱镜应用程序,它有自己的模块,应该有可能将参数传递给 Module2 和其他模块。

有什么方法可以实现吗?

我的意思是:Module1里面的view可以创建自己的Region,所以依赖的模块可以把view注入到这个Region中吗?

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 回答