DevExpress NavBarGroup 的 PRISM 缺失区域

PRISM missing region for DevExpress NavBarGroup

我对 PRISM 6 和 NavBarControl / NavBarGroup 有一个非常奇怪的问题。

我的 Shell.xaml

中有以下内容
        <dxn:NavBarControl MaxWidth="250" DockPanel.Dock="Left">
            <dxn:NavBarControl.View>
                <dxn:ExplorerBarView />
            </dxn:NavBarControl.View>

            <dxn:NavBarGroup prism:RegionManager.RegionName="Business" Header="Business" />
            <dxn:NavBarGroup prism:RegionManager.RegionName="Reports" Header="Reports" />
            <dxn:NavBarGroup prism:RegionManager.RegionName="Administration" Header="Administration" />

        </dxn:NavBarControl>

我为 NavBarGroup 创建了自定义 RegionAdapter。需要实现的方法CreateRegion returns一个new AllActiveRegion()。此方法只会被命中两次,并且 returns 一个新区域用于 ReportsAdministration.

缺少第一个名为 Business 的区域。如果我在开头添加一个新组,那么该区域将丢失,然后添加下一个...

有什么想法吗?

感谢您的帮助...

由于 NavBarGroup 不是可视元素(它继承自 FrameworkContentElement class),问题可能与 PRISM 中的 DelayedRegionCreationBehavior garbage collected in non-FrameworkElement regions issue 有关。您可以尝试修改该报告中显示的 PRISM classes 或在代码中分配区域名称,就像我们在添加 DockLayoutManager 后功能区中的 Prism 区域停止工作时所做的那样。

我采用第二种方法在 Shell.xaml 的代码后面设置区域。这很有效,并且区域以正确的方式填充。

Shell.xaml.cs (ctor)

RegionManager.SetRegionName(business, "Business");
RegionManager.SetRegionName(reports, "Reports");
RegionManager.SetRegionName(administration, "Administration");