我正在使用PRISM和Unity Container。
我已经在我的shell中加了一个名为TabControl
的{{1}}区域。
然后我在另一个名为Common a view的项目中。此视图包含MainRegion
区域及其下方的两个按钮。
使用这个常见项目,我创建了几个引用Common项目的模块。当我创建一个新模块时,我需要创建一个视图,它应该将它放在上一个项目的ContentRegion
中。
请查看下图。
我的意思是我创建的每个模块,我需要为ContentRegion创建一个View。
我不知道如何实施这种情况,你能指导我吗?
答案 0 :(得分:1)
根据你的问题说出你想要做什么有点难,但我会试一试。看起来你想要的是本地范围的区域经理。
因此,在每个模块中,您将公共视图添加到选项卡控件区域。它可能看起来像这样:
public class ModuleA
{
public ModuleA(IRegionManager regionManager)
{
_shellRegionManager = regionManager;
}
public bool Initialize()
{
IRegion tabRegion = _shellRegionManager.Regions["tabRegion"];
//You may actually want to use your container to resolve the common view, but
//I'm creating it here for demonstration sake.
Object commonView = new CommonView();
//This is the important part... setting the 3rd parameter to true gives us
//a new locally scoped region manager, so Prism won't complain about the fact
//that the common view contains regions with names that have already been
//registered in other modules
IRegionManager localRM = tabRegion.Add(new CommonView, "ModuleACommon", true);
IRegion commonContentRegion = localRM.Regions["ContentRegion"];
commonContentRegion.Add(new ModuleAView());
}
IRegionManager _shellRegionManager;
}