使用Prism,我有一个INFRASTRUCTURE项目,我有两个区域的视图:
SidebarRegion
没有问题,因为这是该项目的特殊视图。但是ContentRegion
是不同的,我有另外一个模块,例如ModuleA
,ModuleB
,这些模块包含必须在ContentRegion
中显示的视图。
我的意思是,INFRASTRUCTURE PROJECT包含通用视图。其他模块包含一个必须在ContentRegion
我正在使用Prism和UNITY。你能指导我怎么做这个吗?我想我需要注册观点,但我迷路了。
答案 0 :(得分:1)
您应该能够通过构造函数将Region Manager和Unity容器传递给模块。然后您可以使用它们在Initialize
方法中注册您的视图,如下所示:
public class ModuleA : IModule
{
private readonly IUnityContainer _container;
private readonly IRegionManager _regionManager;
public ModuleA(IUnityContainer container, IRegionManager regionManager)
{
_container = container;
_regionManager = regionManager;
}
public void Initialize()
{
_regionManager.RegisterViewWithRegion("ContentRegion",
() => _container.Resolve<NameOfYourView>());
}
}
当然,你必须确保模块正确加载,但我认为已经完成了。