Sha*_*boo 11 wpf prism composite
我有一个复合WPF应用程序.在我的一个模块中,我想制作一个向导并将步骤显示在一个区域中,这样我就可以更轻松地在两个步骤之间切换.最初我让这个向导显示在选项卡区域,嵌套区域工作正常.现在我想把它变成一个模态对话框,但是在打开之后,内部区域永远不会被区域管理器注册; 所以我无法添加我的向导步骤.
我的印象是区域管理器是全局的,只需添加cal:RegionManager.RegionName ="WizardSteps"就可以了,但显然不是.
如果我将区域管理器传递给视图,我可以使用它...有谁知道如何在代码后面的ContentControl中添加区域?
Cam*_*and 17
问题是区域在可视化树中搜索RegionManager附加属性,然后向该管理器注册自己.在主窗口,这很好,但在子窗口,这不会发生.
在Bootstrapper中,创建shell后,将执行以下代码.
RegionManager.SetRegionManager(shell, this.Container.Resolve<IRegionManager>());
RegionManager.UpdateRegions();
Run Code Online (Sandbox Code Playgroud)
要让区域经理使用您的子窗口,请在创建窗口后立即执行相同的操作.
编辑
要设置控件的区域名称,还要设置RegionManager的附加属性,如下所示...
RegionManager.SetRegionName(control, "MyRegion");
Run Code Online (Sandbox Code Playgroud)
但是你可以在xaml中这样做.您在单独窗口中的区域不起作用的原因是因为需要在基本窗口上设置RegionManager,如上所示.
它实际上非常简单.
在弹出窗口中,xaml像在shell中一样添加一个regionname.然后在弹出窗口构造函数中添加以下调用:
public Popup(IRegionManager regionManager)
{
InitializeComponent();
RegionManager.SetRegionManager(this,regionManager);
}
Run Code Online (Sandbox Code Playgroud)
这在Prism v.1中对我有用 - 在以后的版本中不应该有太大的不同.
归档时间: |
|
查看次数: |
13312 次 |
最近记录: |