RegionManger 未加载区域
Region not loaded by the RegionManger
在基于 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 所说:
- 首先我们命名目标元素:
<telerik:RadRibbonView.QuickAccessToolBar>
<telerik:QuickAccessToolBar x:Name="QuickAccessToolBar"/>
</telerik:RadRibbonView.QuickAccessToolBar>
- 在后面的代码中(在我的例子中是 Shell):
public Shell(ShellViewModel viewModel, IRegionManager regionManager)
{
InitializeComponent();
DataContext = viewModel;
RegionManager.SetRegionName(QuickAccessToolBar,RegionNames.QuickAccessToolBarRegion);
RegionManager.SetRegionManager(QuickAccessToolBar, regionManager);
}
其中RegionNames.QuickAccessToolBarRegion="QuickAccessToolBarRegion"和regionManager是unity容器解析的RegionManager
非常感谢布莱恩,晚安:)
我的猜测是 QuickAccessTolbar 不是可视化树的一部分,因此区域管理器找不到它。由于这是一个 Telerik 控件,我不知道他们是如何构建控件的。您可能必须在代码隐藏中执行此操作。
首先设置区域名称,然后使用附加属性设置 RegionManager。
RegionManager.SetRegionName(quickToolbar, 名称);
RegionManager.SetRegionManager(quickToolbar, rm);
在基于 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 所说:
- 首先我们命名目标元素:
<telerik:RadRibbonView.QuickAccessToolBar>
<telerik:QuickAccessToolBar x:Name="QuickAccessToolBar"/>
</telerik:RadRibbonView.QuickAccessToolBar>
- 在后面的代码中(在我的例子中是 Shell):
public Shell(ShellViewModel viewModel, IRegionManager regionManager)
{
InitializeComponent();
DataContext = viewModel;
RegionManager.SetRegionName(QuickAccessToolBar,RegionNames.QuickAccessToolBarRegion);
RegionManager.SetRegionManager(QuickAccessToolBar, regionManager);
}
其中RegionNames.QuickAccessToolBarRegion="QuickAccessToolBarRegion"和regionManager是unity容器解析的RegionManager
非常感谢布莱恩,晚安:)
我的猜测是 QuickAccessTolbar 不是可视化树的一部分,因此区域管理器找不到它。由于这是一个 Telerik 控件,我不知道他们是如何构建控件的。您可能必须在代码隐藏中执行此操作。
首先设置区域名称,然后使用附加属性设置 RegionManager。
RegionManager.SetRegionName(quickToolbar, 名称);
RegionManager.SetRegionManager(quickToolbar, rm);