2016-08-28 5 views
-1

이것은 내 시나리오입니다. MainPage에서 Details 목록을 표시합니다. 그래서 ObservableCollection의 MainViewModel에서 구성되는 DetailViewModels를 만들었습니다.MVVM - 데이터 뷰로 기존 ViewModel을 전달하는 방법

세부 정보 목록에서 하나의 항목을 클릭하여 DetailPage를 열고 싶습니다. 그래서 DetailPage로 이동합니다. 그리고 이제는 이미 존재하는 DetailViewModel (그냥 클릭 한 것)을 DetailPage에 바인딩하려고합니다. 나는 그것을하는 법을 모른다 - 꽤 일반적인 상황으로 이음새가 있지만. 기본 MVVM Light를 사용하면 새 DetailViewModel 인스턴스가 만들어집니다. 한마디로 내가 뭔가를 놓친 거지 아마

...

감사

한스 - 피터

답변

0

,

ViewModel는 (데이터를 포함하는) 모든 Models를 수집하여 설정 변경 표시 될 수 있지만 자체는 포함하지 않습니다.. 따라서 귀하의 경우 DetailViewModel은 애플리케이션에 한 번만 존재해야하지만 실제로 표시하려는 데이터가있는 DetailModel을 포함 할 수 있습니다.

당신이 구성되어 일단 DetailViewModelMainViewModel에서 선택한 DetailModel을 전달하는 Messenger을 사용하거나 한 번 설정 새로운 DetailModel을 선택하는 당신의 DetailViewModelSelectDetailModel(DetailModel model) 방법을 만들 수 있습니다

SimpleIoc.Default.GetInstance<DetailViewModel>().SelectDetailModel(model);