2013-09-24 4 views
2

Wpf 프리즘 응용 프로그램 및 모듈이 있습니다. 동일한 모듈로 채워진 창을 많이 만들고 싶습니다. 그러나이 오류가 걸릴 :동일한 모듈을 두 번 이상 표시하십시오.

이름이 'PriceWindowRegion'인 영역을 만드는 동안 예외가 발생했습니다. 예외 : System.ArgumentException : 지정된 이름의 지역이 이미 등록되었습니다.

이 문제를 어떻게 해결할 수 있습니까?

덕분에,

+2

http://stackoverflow.com/a/4822006/181771 – DaveDev

+0

적어도 오류가 발생한 코드를 추가해야합니다. –

답변

3

당신은 그들이 모두 같은 IRegionManager을 공유하는 당신의 창에 범위 지역을 사용해야합니다. 또한 사용자 컨트롤의 PartCreationPolicy 특성이 NonShared으로 설정되어 있는지 확인하십시오.

는 MSDN는 http://msdn.microsoft.com/en-us/library/ff921098%28v=pandp.40%29.aspx#sec42

범위가 지정된 영역 만 볼 주입 가능한 동일 영역의 복수의 인스턴스를 생성하는 방법에 대한 설명서를 제공한다. 뷰가 있어야만 고유 한 영역 인스턴스가 있어야하는 경우 을 사용해야합니다. 연결된 속성이있는 영역을 정의하는보기 은 자동으로 부모의 RegionManager 을 상속받습니다. 일반적으로 이것은 쉘 창에 등록 된 RegionManager입니다. 응용 프로그램에서 해당보기의 둘 이상의 인스턴스를 만드는 경우 각 인스턴스 은 해당 Region을 부모 RegionManager에 등록하려고 시도합니다. RegionManager는 고유하게 명명 된 영역 만 허용합니다. 따라서 두 번째 등록 오류가 발생합니다.

Scoped Regions

IRegion detailsRegion = this.regionManager.Regions["DetailsRegion"]; 
View view = new View(); 
bool createRegionManagerScope = true; 
IRegionManager detailsRegionManager = detailsRegion.Add(view, null, 
          createRegionManagerScope); 

추가 메소드는 뷰 로컬 영역에 상기 액세스 [SIC] 유지할 수있는 새로운 RegionManager를 반환

.

관련 문제