개발하다보니 또 난관이다.
Tab Control에 Items Source로 ObservableCollection<ViewModel>을 바인딩했다.
생성될 각 탭에 대한 화면은 UserControl로 정의하고 MainView에 DataTemplate을 적용해주었다.
문제는 바인딩된 리스트에 자식을 만들면 그 값이 바로 View로 넘어가는 게 아니라 해당 값으로 View에 뿌려줄 인스턴스를 재생성하는 것이다. 그렇게 되면 View에서 만들어진 인스턴스와 메인 뷰모델이 가진 인스턴스에 차이가 발생한다.
+++
알고 보니 내가 DataContext를 설정 해 주어서 2번 로드 되는 거였다.
UserControl에 설정되어 있던 DataContext 항목을 삭제하면 동적으로 생성된(Observable Collection 바인딩 된) ViewModel에 자동 바인딩 되므로 아무것도 해결할 필요가 없어진다.
뻘짓이었다...
'개발새발 > C#' 카테고리의 다른 글
[C#/WPF] 숫자만 입력되는 소수점 TextBox (0) | 2019.07.02 |
---|---|
[C#] SaveFileDialog을 이용하여 Excel파일로 DataTable 저장하기. (0) | 2019.04.09 |
[C#/WPF] Extended WPF Toolkit 사용하기. (0) | 2019.04.04 |
[C#] Dictionary : Key Type으로 Key값 직접(색인) 접근하기. (0) | 2019.03.27 |