Prism+Wpf:RegionManager未加载嵌套区域



我的shell中有四(4)个区域:

  1. RibbonViewRegion:注入标签

  2. RibbonTabRegion:注入一组控制

  3. RibbonGroupRegion:注入一个控件(按钮、组合框…)

  4. ContentRegion:主要内容区域

    <telerik:RadRibbonView prism:RegionManager.RegionName="{x:Static inf:RegionNames.RibbonViewRegion}" ApplicationName="Demo"> <telerik:RadRibbonTab Header="Principal" prism:RegionManager.RegionName="{x:Static inf:RegionNames.RibbonTabRegion}"> <telerik:RadRibbonGroup Header="Navigation" prism:RegionManager.RegionName="{x:Static inf:RegionNames.RibbonGroupRegion}"/> </telerik:RadRibbonTab> </telerik:RadRibbonView> <ContentControl Grid.Row="2" prism:RegionManager.RegionName="{x:Static inf:RegionNames.MainContentRegion}"/>

在模块Initialize方法中,当我像这样注入我的视图时:

RegionManager.Regions[RegionNames.RibbonGroupRegion].Add(Container.Resolve<MyView>());

出现异常:

Prism.Wpf.dll中出现类型为"System.Collections.Generic.KeyNotFoundException"的异常,但未在用户代码中进行处理附加信息:区域管理器不包含RibbonGroupRegion区域。

实际上:当我在这条线上设置断点时,我注意到只有三个区域被加载——RibbonViewRegionRibbonTabRegionContentRegion

我的问题是:为什么我的RibbonGroupRegion没有被RegionManager加载?

注意:我实现了RadRibbonGroupRegionAdapter,它运行良好。

引导我,提前谢谢。

我解决了它,我替换了这个代码:

RegionManager.Regions[RegionNames.RibbonGroupRegion].Add(Container.Resolve<MyView>());

通过这个:

RegionManager.RegisterViewWithRegion(RegionNames.RibbonGroupRegion, () => Container.Resolve<MyView>());

并且它工作于

最新更新