我有一个使用Tab控件实现的"mainregion",其中包含一些选项卡项。属性ViewSortHint会在启动时影响选项卡项的排序,但这不是我想要的。
启动后,我想从配置文件中读取,并以编程方式立即显示一个特定的选项卡。在Prism的架构中,有没有一种方法可以做到这一点?
以下是我所做的:
1.)我有一个IConfigProvider(我自己的东西)实例,通过Unity DI在我的IModule的构造函数中传递(以及IRegionManager、IUnityContainer等)。这个configProvider只是一个传递的字典。它保存启动时检索到的视图的最后一个视图名称(引导程序)。在我的每个视图中,当它们被激活时,它们会触发一个pubsub事件,告诉订阅该pubsub事件的任何侦听器其名称。在我的情况下,唯一的侦听器将其保存在配置文件中。
2.)在IModule->初始化期间
container.RegisterType(typeof(Object), typeof(TheViewClass), typeof(TheViewClass).FullName);
3.)我测试了这个模块的名称(约定)与configProvider中的最后一个视图名称。如果有匹配。我也会打电话给:
RegionManager.RequestNavigate(RegionNames.MainRegion, typeof(TheViewClass).FullName);
导航到它!!!
希望这能帮助到别人。