2011-02-03 4 views
1

저는 프리즘을 사용하고 있습니다. 상위 뷰에 tabcontrol이 있습니다. 내 탭 컨트롤에 두 개의 탭이 있습니다. 각 탭에는 다른보기가 있습니다. 각 탭에는 버튼이있어 어떤 내부 논리에 따라 탭 컨트롤이 다른 탭으로 전환되게 할 수도 있고 그렇지 않을 수도 있습니다. 이와 같은 아키텍처를 설정하는 가장 좋은 방법은 무엇입니까?WPF 부모에서 ViewModel을 MVVM의 자식 ViewModel에서 호출하는 방법

나는 그것의 엉성함을 믿고 오용되기 쉽기 때문에 EventAggregator를 사용하지 않습니다. 다른 방법이 있습니까? RoutedCommand 또는 이벤트를 사용해야합니까?

또한 탭 사이에서 정보를 공유 할 예정이지만 느슨하게 결합되어 고유 한 ViewModels를 갖기를 바랍니다. 어떤 생각, 제안 또는 비판?

감사합니다. 브렛

답변

1

나의 첫번째 선호, 일반적으로, 아이 뷰 모델은 이벤트를 발생하는 것입니다, 그리고 부모가 핸들러를 설정하는 것은 아이를 만들 때.

그러나 이런 종류의 일을하는 방법에는 점수가 있습니다. 예를 들어 모든 탭 전환 논리가 상위에있는 경우 부모에 명령을 만들고 AncestorType 바인딩을 사용하여 버튼을 바인딩 할 수 있습니다. 그런 다음 하위 뷰 모델을 전혀 다룰 필요가 없습니다.

4

나는 블로그 포스트를 써서 아이와 부모 사이의 ViewModel 통신 옵션을 간략히 설명했다. 몇 가지 아이디어를 줄 수 있습니다.

Nested ViewModels

관련 문제