【问题标题】:Region not loaded by the RegionMangerRegionManger 未加载区域
【发布时间】:2015-11-10 07:45:26
【问题描述】:

在基于 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 的回答非常好,它就像一个魅力, 正如布莱恩所说:

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

其中 RegionNames.QuickAccessToolBarRegion ="QuickAccessToolBarRegion" 和 regionManager 是统一容器解析的 RegionManager

非常感谢布赖恩,晚安:)

【问题讨论】:

    标签: prism


    【解决方案1】:

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

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

    RegionManager.SetRegionName(quickToolbar, name);

    RegionManager.SetRegionManager(quickToolbar, rm);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 2012-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多