区域未由RegionManger加载

时间:2015-11-09 10:58:11

标签: prism

在基于prism 6的应用程序中, 这是我的shell的一部分, QuickAccessToolBar 区域定义如下:

<telerik:RadRibbonView>
        <telerik:RadRibbonView.QuickAccessToolBar>
            <telerik:QuickAccessToolBar prism:RegionManager.RegionName="{x:Static inf:RegionNames.QuickAccessToolBarRegion}"/>
        </telerik:RadRibbonView.QuickAccessToolBar>

RegionManger 不会加载区域

以及何时将替换上面的定义(仅用于演示目的):

<telerik:RadRibbonView >
        <ContentControl prism:RegionManager.RegionName="{x:Static inf:RegionNames.QuickAccessToolBarRegion}"/>

RegionManager加载区域!

我的问题是:
我的XAML中有什么错误?我的区域是在复杂的属性中定义的吗? 你能指导我吗 提前致谢。 最好的问候。

解决方案:

非常好的回答Brian,它就像一个魅力, 正如 Brian 所说:

  1. 首先我们将目标元素命名为:
  2. <telerik:RadRibbonView.QuickAccessToolBar>
        <telerik:QuickAccessToolBar x:Name="QuickAccessToolBar"/>
    </telerik:RadRibbonView.QuickAccessToolBar>
    
      后面的代码中的
    1. (在我的案例中是Shell):
    2. public Shell(ShellViewModel viewModel, IRegionManager regionManager)
      { 
       InitializeComponent();
       DataContext = viewModel;
       RegionManager.SetRegionName(QuickAccessToolBar,RegionNames.QuickAccessToolBarRegion);
       RegionManager.SetRegionManager(QuickAccessToolBar, regionManager);
      }
      

      RegionNames.QuickAccessToolBarRegion =&#34; QuickAccessToolBarRegion&#34;和regionManager是由统一容器

      解析的RegionManager

      非常感谢Brian,晚安:)

1 个答案:

答案 0 :(得分:1)

我的猜测是QuickAccessTolbar不是可视树的一部分,因此区域管理器无法找到它。由于这是一个Telerik控件,我不知道他们如何构建他们的控件。您可能必须在代码后面执行此操作。

首先设置区域名称,然后使用附加属性设置RegionManager。

RegionManager.SetRegionName(quickToolbar,name);

RegionManager.SetRegionManager(quickToolbar,rm);