2016-06-15 4 views
0

여러 개의보기로 구성된 레이아웃을 만들고 각보기에는 고유 한보기 모델이 있습니다.컨테이너 viewmodel의 중첩보기 모델이 MVVM을 위반합니까?

또한 ViewModel 우선 접근 방식을 구현하고 싶습니다. 그래서 나는 그들의 데이터 인터페이스가 container viewmodel의 상응하는 viewmodel 속성에 바인딩되어 있다는 관점에서 몇몇 컨테이너를 넣고 싶다. 그런 다음 컨테이너의 내용은 바운드 viewmodel 유형으로 작성된 데이터 템플릿을 기반으로로드됩니다.

public class CompositVm 
{ 
     public FirstPartVm FirstPartVm { get; set; } 
     public SecondPartVm SecondPartVm { get; set; } 
} 

날씨 중첩보기 모델을 알고 싶습니다. MVVM 디자인 패턴과 호환되는 것이 좋습니다.

+0

대략적인 예를 들려 줄 수 있습니까? – Noctis

+2

mvvm 관점에서 어떤 문제도 보이지 않습니다. – nkoniishvt

답변

2

예. 거기에 아무런 문제가 없습니다. MVVM 접근 방식에서하는 것이 가장 좋습니다.

은 메인 레이아웃보기 MainLayoutViewModel에 바인딩 MainLayout을 말해봐. MainLayout 내부 당신은 아마 2 행 2 열로 기본보기를 분리하는 두 아이 뷰가있을 수 있습니다 볼 수는 ChildLayout1ChildLayout2ViewModel에 바인딩 ChildLayout2 ChildLayout1ViewModel에 바인딩 말한다. 당신은 당신은 MainLayout.xaml 자체에보기의 DataContext를 설정할 수
ChildLayout1ViewModel ChildLayout1ViewModelInstance = new ChildLayout1ViewModel(); 
ChildLayout2ViewModel ChildLayout2ViewModelInstance = new ChildLayout2ViewModel(); 

MainLayoutViewModel아이 뷰 모델 '의 인스턴스를 만들 수 있습니다이를 위해

. 매우 큰 데이터 바인딩이있는 뷰를 처리 할 때 매우 유용합니다. 이벤트를 분리하고 그에 따라 이벤트와 데이터를 처리하는 것은 쉽습니다.

MVVM 모델을 따르는 동안 반드시해야 할 일은 분명합니다.