我的选项卡控件的作用域Prism RegionManager在哪里?

时间:2015-08-12 16:49:19

标签: wpf prism mef prism-5

使用Prism 5.0。我的shell是从MefBootstrapper派生类实例化的。 shell有一个MainRegion,其中使用AutoPopulateExportedViewsBehavior(位于 StockTraderRI 示例中)添加了视图。 这完美无缺。

但是,在我的一个加载到MainRegion的视图中,有一个TabControl,我想在运行时添加主动感知视图模型。 IActiveAware接口仅在控件位于区域内且区域不允许我绑定到ItemsSource时才有效。因此这个结构:

<TabControl prism:RegionManager.RegionName="TabRegion">
    <TabControl.Resources>
        <DataTemplate DataType="{x:Type local:MyTabViewModel1}">
        </DataTemplate>
        <DataTemplate DataType="{x:Type local:MyTabViewModel2}">
        </DataTemplate>
    </TabControl.Resources>
</TabControl>

所以我认为我可以在运行时添加viewmodel,当我的主视图模型被激活时(通过IActiveAware):

protected override void OnActiveChanged(bool active)
{
    if (active)
    {
        // This code crashes.
        // The region does not exist in the root region manager...
        var region = regionManager.Regions["TabRegion"];
    }
}

问题是这段代码崩溃了。我想这意味着我有一个对根区域管理器的引用。如何获得范围区域管理器?

0 个答案:

没有答案