注册地区

时间:2012-03-01 22:37:05

标签: c# wpf prism unity-container region

使用Prism,我有一个INFRASTRUCTURE项目,我有两个区域的视图:

  • ContentRegion
  • SidebarRegion

enter image description here

SidebarRegion没有问题,因为这是该项目的特殊视图。但是ContentRegion是不同的,我有另外一个模块,例如ModuleAModuleB,这些模块包含必须在ContentRegion中显示的视图。

我的意思是,INFRASTRUCTURE PROJECT包含通用视图。其他模块包含一个必须在ContentRegion

中显示的视图

我正在使用Prism和UNITY。你能指导我怎么做这个吗?我想我需要注册观点,但我迷路了。

1 个答案:

答案 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>());
    }
}

当然,你必须确保模块正确加载,但我认为已经完成了。