Prism 라이브러리의 IRegionManager의 기능을 대체하는 오픈소스가 있을까요?

안녕하세요.

WPF로 개발을 시작해 이제 3년차가 되어가는 개발자입니다.

지금까지 .Net Framework 4.8에 Prism라이브러리를 이용해 개발을 해왔었습니다만,

이번에 .Net 10으로 넘어가면서 Prism이 아닌

Microsoft.Extensions.DependencyInjection 과

CommunityToolkit.Mvvm를 사용해보려 합니다.

기존에 DI와 Messenger는 위의 Nuget들로 대체가 가능할 것 같으나

IRegionManager의 기능은 어떤 것으로 대체를 해야할지 막막한 상황입니다..

혹시 좋은 오픈소스(누겟)이 있다면 추천해주시면 감사하겠습니다.

2 Likes

완벽한 대체체보단
Region컨셉을 가져와
전환애니메이션을 만들었습니다.

2 Likes

좋은 답변감사합니다!

Region을 직접 만드시고 대단하시네요

앞으로 많이 배워가겠습니다.

1 Like

죄송하지만 질문하나 드리겠습니다.

기존 Prism라이브러리에서는 view와 viewmodel이 매칭될때 view를 기반으로 viewmodel을 매칭하는 느낌이었습니다만,

소개해주신 라이브러리에서는 viewmodel을 기반으로 view가 매칭되는것 같습니다.

다른 라이브러리들을 참고해봐도 viewmodel이 메인인 라이브러리가 많던데 혹시 요즘 추세가 그런건가요?

1 Like

음.. 이게 답이 될지는 모르겠지만, 말씀하신 사용법이 제가 prism 을 엄격한 차원의 MVVM 패턴 적용으로 보기 어렵다고 얘기하는 이유 중에 하나 이긴해요.

요거를 살짝 보시는 게 도움이 될까해서 남겨 봅니다.

근데 사실 저도 WPF 안 만진 지 오래되어서리… 기억이 가물치??

3 Likes

안녕하세요.

LazyRegion(구 LazyRegion, 신 LazyStage)은 ContentControl의 Content 변경을 트리거로 전환 파이프라인이 동작하는 구조입니다.

내부적으로 두 개의 ContentControl을 사용하며,
하나는 Staging 영역(전환 준비용),
하나는 현재 표시 영역(Visible 영역)을 담당합니다.

새로운 Content는 먼저 Staging 영역에서 준비된 뒤,
준비 완료 시 표시 영역과 교체됩니다.

Region을 통해 화면을 관리할 수도 있고,
단순 Content 교체만으로도 전환이 가능하기 때문에
View First와 ViewModel First 모두 개발자의 선택에 따라 사용할 수 있습니다.


이 느낌은
RegionManager 때문이라기 보단
아마 뷰 생성이 되면서 뷰모델 맵핑처리 해주는
ViewModelLocator라는 것 때문에 그렇게 느끼신 것 같습니다. :slight_smile:

1 Like

아실지 모르겠지만. prism도 오픈소스입니다.

찾아보심 도움이 되실겁니다.

1 Like