나는 ListView
과 Popup
이있는 내용 (Buttons
, TextBoxes
등) 변경 동적으로 ListView
에서 선택한 것을 따라. 이 무엇입니까? Popup
또는 ViewModel
이 무엇을 결정하면 합법적입니까? 또한 이 ViewModel
님의 이벤트를 처리 할 수 있는지 물어보고 싶습니다.MVVM 뷰 모델 -보기 통신
답변
보기에서 유효한 내용에 대한 자세한 설명은 5: Implementing the MVVM Pattern을 확인하십시오. 그것은이 답변에서 제가 여기있는 것보다 훨씬 낫다고 설명합니다.
Q :
그래도 난 당신의 질문에 기회를 줄 것이다 합법적인가보기가 팝업에 있거나 뷰 모델이 그것을 무엇을해야하는지 판단하는 경우? A :보기에서 팝업이 표시되는 방법을 결정해야하며, ViewModel이 표시되는 내용을 결정해야합니다.
Q : View에서 ViewModel의 이벤트를 처리 할 수 있습니까? A : 물론, 이것은 DataBinding의 핵심 부분입니다. INotifyPropertyChanged 이벤트를 처리합니다.
MVVM은 법률이 아닙니다. 이것은 도구입니다. 당신이하는 일이 당신의 목적에 부합한다면 그것은 당신을 위해 일합니다. 가장 좋은 방법이 무엇인지 묻는다면, MVVM을 처음 사용하는 이유에 따라 다릅니다.
보기와 독립적으로 테스트를 작성하고 싶은가요? 그런 다음 논리적 상태를 뷰 모델에 입력하십시오.
Blend에서 디자인 타임 데이터를 표시 할 수 있기를 원하기 때문입니까? 그런 다음 논리적 상태를 뷰 모델에 넣고 디자인 타임 데이터를 정의하여 디자인 모드로 표시합니다.
MVVM에 익숙한 사람들이 오랫동안 유지 관리 할 유지 보수 가능한 코드를 갖고 싶어하기 때문입니까? 논리를 뷰 모델에 넣으십시오.
앱이 복잡하고 관심사가 분리되어 다른 사람들이보기에서 작업하고 다른 사람들이보기 모델에서 작업 할 수 있기 때문입니까? 논리를 뷰 모델에 넣으십시오. 이 중 어느 것도 적용되지 않으면
- 당신은 괜찮을 그냥 뒤에 코드에 코드를 넣어 그것을 알아낼와 MVVM은 드래그 할 못하게하려고 시간을 줄일 수 있습니다.
문제는 뷰 모델로 Popup
의 내용을 운전하는 방법을 경우 - 당신이 일반적으로 할 수있는 것을 구현 ItemsControls
등 GridView
, ListView
로 아니면 사용자 정의 하나 ItemTemplateSelectors
또는 ContentTemplateSelectors
와 ContentControls
의 조합을 사용하여 뷰 모델 상태에 기초하여 디스플레이 될 뷰를 결정하는 로직.
또한 Minimalistic MVVM 성명서를 확인하십시오.
- 1. MVVM 모델 - ViewModel 통신
- 2. Silverlight -보기 모델 간 통신
- 3. MVVM 패턴 및 중첩 뷰 모델 - 통신 및 조회 목록
- 4. - MVVM 명령 하위 뷰 모델
- 5. WPF MVVM 디자인 뷰 모델
- 6. WPF MVVM - 뷰 모델 클래스의 모델 사용
- 7. MVVM : 씬 뷰 모델 및 리치 모델
- 8. MVVM : 통신
- 9. MvvM ViewModel에서 ViewModel 로의 통신
- 10. WPF/MVVM -보기 모델이 일정하게 유지되고 모델 변경 만 수행해야합니까?
- 11. MVVM - 뷰 모델을 뷰
- 12. 뷰 모델과 모델 간의 MVVM 계층?
- 13. MVVM 패턴에서 모델과 뷰 모델 간의 일관성을 어떻게 유지합니까?
- 14. 보기 간 통신
- 15. 바운드 편집 모델! =보기 모델
- 16. 보기 모델 인터페이스의 WPF 속성?
- 17. MVVM, 모델 또는 뷰 모델 (컨트롤러)에 로직을 넣어야합니까?
- 18. WPF MVVM OnPropertyChanged 두 ViewModels 통신
- 19. MVVM 모델 컬렉션을위한 모델?
- 20. 객체와 MVVM 통신
- 21. 는 뷰 모델이 MVVM
- 22. 보기 (모델) 대보기 ("보기 이름", 모델)
- 23. WPF MVVM : 모델 정보보기
- 24. MVVM 모델 디자인
- 25. 보기 컨트롤러 사이의 통신
- 26. 보기 컨트롤러 간 통신
- 27. 지속성 모델 대 뷰 모델
- 28. 보기 모델
- 29. 보기 방법 모델 지정
- 30. 하위 뷰 부모 뷰 업데이트 MVVM
"당신이하는 일이 당신의 목적에 부합한다면 - 그것은 당신을 위해 일합니다." 나는 100 % 동의한다. 또한, 당신을 인도 할 수있는 좋은 틀을 선택하는 것은 내가 패턴을 최대한 활용하는 데 도움이되는 것입니다. –