안녕하세요. WPF 프로젝트에 MVVM 패턴을 적용해서 개발중입니다.
전 하나의 window 화면에 기능별로 영역을 나눴고 각 영역은 UserControl을 만들어 처리했습니다. (Android의 Fragment 처럼 사용하고 있습니다.)
그리고 기능적으로 나누다보니 대부분의 UserControl 이 각자의 ViewModel을
가지고 있습니다.
그런데 문제는 각 UserContol이 독립적인 기능을 가지면서 서로 통신을 해야하는 경우도 생긴단 겁니다.
A UserControl에 검색창이 있고, 여기에 입력한 값이 B UserControl에 전달 되어야 하는 상황처럼요.
이런경우 통신을 위한 공유 ViewModel을 만들거나,
여러 ViewModel를 멤버로 가지는 Super Viewmodel을 사용하는 방법이 떠오릅니다만 그 외의 방법들을 포함해서 적절한게 무엇일까요?
작업을 하다보면 기능은 완성했지만 이게 옳은 구조인가에 대한 의문이 계속해서 듭니다.
코드 비하인드를 최대한 깨끗하게 유지해야한다는 글을 보고 최대한 그렇게 할려고 해도 여기에서 처리하는것 말고는 다른 방법이 떠오르지 않아 조금씩 코드량이 늘어나는 문제도 있고요…