본문 바로가기

Dev::DotNet/Prism

Prism 의 Region 에 대한 생각

요즘 Prism을 하다 보니... Region 때문에 좀 고생을 했다.


Prism 샘플을 찾아보면 보면 Module 의 Initialize에서 IoC Container에서사용할 객체를 등록하고 

그 뒤에 RegionManager에 Region을 등록하는 것을 흔히 볼 수 있다.

그래서 그렇게 하다 보면 동일한 이름의 Region을 두 군데 이상에서 사용할 수 없다는 것을 알게 된다.

쉽게 해결하려면 Region 이름을 다르게 등록하면 된다.

하지만 Region으로 붙인 View 안에 또 다른 Region으로 붙인 View 가 있다면 이야기는 달라진다.


그렇다면 같은 Region 이름으로 사용하고 싶다면 어떻게 해야 할까?


이것저것 테스트해보니 

하나의 RegionManager에 같은 Region을 한 곳 이상에서 사용할 수 없는 것 같았다.

보통 Region을 등록할 때 Bootstrapper에서 등록한 기본 RegionManager를 사용할 것이고

이렇게 하나의 RegionManager에 Region을 등록해버리면 같은 이름으로 여러 곳에서 사용을 못하게 된다.

그렇기 때문에 View마다 각각 RegionManager를 만들고 그 만든 RegionManager에 Region을 등록하게 되면

(그럼 Region 의 등록은 Module 의 Initialize 가 아니라 각 View (or ViewModel)에서 Region을 등록해야 한다.)

해당 문제는 완전히 자유로워지고 흔히 그냥 new 하듯이 만들어 낼 수 있다.

'Dev::DotNet > Prism' 카테고리의 다른 글

Prism - 완전 단순한 Sample Source  (0) 2013.11.26