MVVM棱柱嵌套区域可以';找不到子区域

MVVM棱柱嵌套区域可以';找不到子区域,mvvm,menu,prism,regions,Mvvm,Menu,Prism,Regions,我有一个菜单(Telerik RadMenu),它在Shell中定义了嵌套区域。在我的模块中,我将使用这些区域注册模块菜单或工具栏项。对于根区域,一切都正常,但当我尝试向子区域(如菜单上的文件区域)添加某些内容时,会出现错误“异常消息是:区域管理器不包含FileMenuRegion区域。” 但是就像我说的,如果我改变这个代码 regionManager.Regions[RegionNames.FileMenuRegion].Add(menuItem); 对此 regionManager.Reg

我有一个菜单(Telerik RadMenu),它在Shell中定义了嵌套区域。在我的模块中,我将使用这些区域注册模块菜单或工具栏项。对于根区域,一切都正常,但当我尝试向子区域(如菜单上的文件区域)添加某些内容时,会出现错误“异常消息是:区域管理器不包含FileMenuRegion区域。”

但是就像我说的,如果我改变这个代码

regionManager.Regions[RegionNames.FileMenuRegion].Add(menuItem);
对此

regionManager.Regions[RegionNames.MainMenuRegion].Add(menuItem);
一切正常。下面是“我的菜单”的XAML,您可以看到区域名称及其构造方式。任何帮助都将不胜感激,因为这让我感到困惑和疯狂

菜单

    <telerikNavigation:RadMenu x:Name="menuMain" DockPanel.Dock="Top" prismrgn:RegionManager.RegionName="{x:Static i:RegionNames.MainMenuRegion}" telerik:StyleManager.Theme="{Binding Source={StaticResource settings}, Path=Default.CurrentTheme}">
            <telerikNavigation:RadMenuItem Header="{x:Static p:Resources.File}" prismrgn:RegionManager.RegionName="{x:Static i:RegionNames.FileMenuRegion}">
                <telerikNavigation:RadMenuItem Header="{x:Static p:Resources.Exit}" Command="{Binding ExitCommand}">
                    <telerikNavigation:RadMenuItem.Icon>
                        <Image Source="../Resources/Close.png" Stretch="None" />
                    </telerikNavigation:RadMenuItem.Icon>
                </telerikNavigation:RadMenuItem>
            </telerikNavigation:RadMenuItem>
        </telerikNavigation:RadMenu>

上述XAML不符合棱镜区域的设计

所有区域都应该附加到从ContentControl派生的控件。加载区域注册视图的过程将使用为该区域名称注册的任何匹配视图替换区域容器的内容。这将删除嵌套区域名称,以便您看到的错误是正确的


其思想是,为指定的区域名称注册的视图本身可以包含其他区域。

那么有没有办法创建嵌套区域呢?请看评论以了解我的确切问题-注意,这是该帖子的第三篇帖子。谢谢区域仅是布局构建块。嵌套过程意味着您实际上需要可替换区域中的可替换区域。解决方案是像往常一样在顶级区域中注册视图,每个视图都包含其他区域定义。用户控件可以有区域,通常只是插入未知源提供的状态信息。我找到了答案。张贴。