指定在启动时在Prism中的ItemsControl中显示哪个“视图”

时间:2015-03-27 02:10:21

标签: wpf prism mef

我有一个使用Tab Control实现的“mainregion”,带有一些标签项。属性 ViewSortHint 会影响启动时选项卡项的排序,但这不是我想要的。

启动时,我想从配置文件中读取,并以编程方式立即显示一个特定的选项卡。有没有办法在Prism的架构中干净利落地做到这一点?

1 个答案:

答案 0 :(得分:0)

这就是我的所作所为:

1。)我在 IModule 的构造函数中通过Unity DI传递了一个IConfigProvider(我自己的东西)实例(其中包括IRegionManager,IUnityContainer)。这个configProvider,只是一个传递的字典。它包含启动时检索的视图的最后一个视图名称(bootstrapper)。在我的每个视图中,当它们被激活时,它们会触发pubsub事件,告诉任何监听器订阅此PubSub事件的名称。在我的例子中,唯一的侦听器将其保存在配置文件中。

2。)在IModule期间 - >初始化

 container.RegisterType(typeof(Object), typeof(TheViewClass), typeof(TheViewClass).FullName);

3.)我测试了该模块的名称(约定)与configProvider中的最后一个视图名称。如果有匹配。我也会打电话:

RegionManager.RequestNavigate(RegionNames.MainRegion, typeof(TheViewClass).FullName);

导航到它!!!

希望这有助于某人。