2012-03-01 3 views
0

, 나는 내가 두 지역으로 볼 수있어 A 아키텍처 프로젝트있어 :Registring 지역

  • ContentRegion
  • SidebarRegion을

enter image description here

이 프로젝트의 구체적인보기이기 때문에 SidebarRegion에는 문제가 없습니다. 그러나 ContentRegion은 다른데, ModuleA, ModuleB과 같은 다른 모듈을 가지고 있으며,이 중 하나는 ContentRegion에 표시되어야하는보기를 포함합니다.

즉, 하부 구조 프로젝트에는 일반 뷰가 포함됩니다. 그리고 다른 모듈에는 보여 져야만하는 뷰가 있습니다. ContentRegion

저는 프리즘과 UNITY를 사용하고 있습니다. 어떻게 할 수 있니? 나는 전망을 등록 할 필요가있다 그러나 나는 잃어버린다고 생각한다.

답변

1

생성자를 통해 영역 관리자 및 Unity 컨테이너를 모듈에 전달할 수 있어야합니다.

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

을 그리고, 물론, 당신은 모듈이 제대로로드되어 있는지 확인해야하지만, 나는 이미 이루어집니다 있으리라 믿고있어 : 그럼 당신은 지금처럼 Initialize 방법에 귀하의 의견을 등록 할 사람들을 사용할 수 있습니다.

+0

여러 모듈을 사용하면 문제가되지 않습니까? 지역이 이미 등록했기 때문에 오류가 발생했습니다. –

+0

'ModuleA'와'ModuleB'의 뷰는 다른 영역을 정의합니까? 그리고 인프라 프로젝트에서 사용한 것과 같은 이름을 사용하고 있습니까? –

+0

아니요, 다른 지역을 정의하지 않습니다. 모듈을 초기화 할 때 설정 한 코드를 넣으면 오류가 발생합니다. 아마 각 모듈이 TabControl에 표시되고 있다는 점에 대해서도 의견을 제시해야합니다. –