현재 WPF의 MVVM을 사용하여 간단한(?) 플랫폼을 제작하고있습니다.
Splash Window로 구성된 LoginWindow에서 로그인하게되면 MainWindow로 진입합니다.
MainWindow는 열을 1:9정도로 나누어 SideMenu가 위치한 부분과 Navigation Frame으로 구성됩니다.
각 SideMenu를 누르면 다른 페이지로 이동하고 각 페이지는 서로 다른 ViewModel을 사용합니다.
private Menu1ViewModel Menu1ViewModel= new Menu1ViewModel();
private void Menu1_Click(object sender, RoutedEventArgs e)
{
MainFrame.Navigate(new Menu1Page(Menu1ViewModel));
}
현재는 MainWindow의 코드 비하인드에서 ViewModel을 초기화하고 각 Page에 넣어주고 있습니다.
이러한 방식으로 개발했을 때 ViewModel을 초기화하기 어렵고 MVVM에 위반된다고 생각되어 수정이 필요할 것 같은데 방법을 잘 모르겠어서 질문 드립니다.
-
ViewModel2를 사용하는 ViewModel1을 1Page에 Datacontext로 사용하고 싶을 때 MainWindow에서 ViewModel1을 1Page에 어떻게 넣어줘야하는지 궁금합니다.
-
현재 Page의 단계의 따라 SideMenu의 IsEnable을 변경해야하는데 SideViewModel을 만들어 MainWindow에서 사용해야하는지 궁금합니다.
-
Navigate new Page를 사용하면 Page를 왔다갔다 할 때 ViewModel이 초기화되는 것 같은데 문제가 없는지 해결방법이 어떻게 있는지 궁금합니다.
긴 글 읽어주셔서 감사드리며 답변 부탁드리겠습니다 !