指定启动时要在 Prism 中的 ItemsControl 中显示的"view"



我有一个使用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);

导航到它!!!

希望这能帮助到别人。

最新更新