0

使用Prism 5.0. 我的外壳是从MefBootstrapper派生类实例化的。shell 有一个MainRegionwhere 视图是使用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>

所以我认为我可以在运行时添加视图模型,当我的主视图模型被激活时(通过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"];
    }
}

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

4

0 回答 0