在基于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 所说:
<telerik:RadRibbonView.QuickAccessToolBar>
<telerik:QuickAccessToolBar x:Name="QuickAccessToolBar"/>
</telerik:RadRibbonView.QuickAccessToolBar>
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,晚安:)
答案 0 :(得分:1)
我的猜测是QuickAccessTolbar不是可视树的一部分,因此区域管理器无法找到它。由于这是一个Telerik控件,我不知道他们如何构建他们的控件。您可能必须在代码后面执行此操作。
首先设置区域名称,然后使用附加属性设置RegionManager。
RegionManager.SetRegionName(quickToolbar,name);
RegionManager.SetRegionManager(quickToolbar,rm);