로딩
요청 처리 중입니다...

WPF에서 Page, NavigationService를 활용하기 애매한 이유

 WPF에서 Page, NavigationService를 활용하기 애매한 이유

WPF를 처음 잡으면 Page와 NavigationService가 눈에 띕니다. "오, 웹처럼 화면 전환하면 되겠네?"

처음 보면 꽤 그럴듯해 보입니다. 하지만 막상 프로젝트에 태워보면 묘하게 삐걱거립니다.

처음엔 “내가 잘못 쓰고 있나?” 싶기도 합니다.

그런데 조금만 깊게 들어가 보면 왜 실무에서 이 기능이 애매하게 느껴지는지 이유가 보입니다. Window 중심 구조와의 충돌 WPF의 근본은 결국 Window입니다.

하지만 NavigationService는 NavigationWindow나 Frame 안에서만 동작합니다. 그래서 보통 이렇게 됩니다.

메인 Window가 하나 있고 그 안에 Frame을 넣고 그 Frame 안에서 Page를 돌립니다. 화면 하나 띄우기 위해 계층이 한 단계 더 생깁니다.

구조를 먼저 보는 설계자 입장에서는 이 불필요한 레이어가 꽤 거슬립니다. ViewModel과 따로 노는 API MVVM의 핵심은 단순합니다.

ViewModel이 상태를 바꾸면 화면이 ...