개발새발/C#
[C#/WPF] TabControl ItemsSource 바인딩 시 ViewModel을 상속받지 않고 생성자를 호출하는 문제 해결.
퀸디
2019. 4. 1. 17:57
개발하다보니 또 난관이다.
Tab Control에 Items Source로 ObservableCollection<ViewModel>을 바인딩했다.
생성될 각 탭에 대한 화면은 UserControl로 정의하고 MainView에 DataTemplate을 적용해주었다.
문제는 바인딩된 리스트에 자식을 만들면 그 값이 바로 View로 넘어가는 게 아니라 해당 값으로 View에 뿌려줄 인스턴스를 재생성하는 것이다. 그렇게 되면 View에서 만들어진 인스턴스와 메인 뷰모델이 가진 인스턴스에 차이가 발생한다.
+++
알고 보니 내가 DataContext를 설정 해 주어서 2번 로드 되는 거였다.
UserControl에 설정되어 있던 DataContext 항목을 삭제하면 동적으로 생성된(Observable Collection 바인딩 된) ViewModel에 자동 바인딩 되므로 아무것도 해결할 필요가 없어진다.
뻘짓이었다...