2011-04-11 4 views
0

누군가가 내가 가지고있는 Silverlight 문제에 대한 지침을 줄 수 있는지 궁금합니다.viewmodel에서보기로 이동하는 방법

지금 내가하고있는 일은 MVVM 패턴을 사용하여 Silverlight에 페이지를 만들어 데이터를 검색하고 표시하는 것입니다. 내 페이지는 데이터를 표시하고 필터링하기 위해 데이터 격자를 사용하는 표준 "목록"유형 페이지입니다.

사용자가이 목록 페이지에서 수정 버튼을 클릭하면 동일한 데이터 컬렉션에 바인딩하려는 데이터 폼이 포함 된 세부 정보 페이지로 이동하고 싶습니다. 목록 페이지의 DataGrid에 바인딩됩니다. 필자가 생각한 것은 List ViewModel이 Details 페이지를 만들고 세부 정보 페이지 datacontext를 List ViewModel의 인스턴스로 설정해야한다는 것입니다. 내가 어떻게 뷰를 생성하고 뷰포트로 이동하여 뷰 모델에 대한 참조를 전달하는지 모르겠습니다.

왜 컬렉션을 사용하는 세부 정보 페이지가 필요한지 궁금 할 것입니다. 이것은 현재 사용자가 현재 액세스 응용 프로그램에서 익숙한 동작을 시뮬레이션 할 수 있습니다. 대부분 사용자가 목록보기를 필터링하면 세부 정보 페이지를 반복해서 열거 나 닫지 않고도 필터의 결과를 탐색하고 편집 할 수있는 페이지를 입력 할 수 있습니다.

답변

1

MVVM이 적합합니다. 데이터가 동일하고 한 번에 두 위치의 데이터를 자동으로 업데이트 할 수 있기 때문에 둘 다 동일한 뷰 모델을 공유한다고 가정하면됩니다.

그러나 뷰 모델을 사용하여 뷰를 만드는 것을 피할 수 있습니다. 이것은 종종 MVVM을 구현하는 잘못된 방법으로 여겨지는데, 뷰 모델에서보기로 연결하여 나중에 문제를 일으킬 수 있습니다.

샘플 코드가 포함 된 솔루션은 블로그 게시물 this에 설명되어 있습니다.

+0

나는 약간 혼란 스럽다. 언급 한 블로그 게시물은 격자보기를 편집 모드로 가져 오는 방법을 보여줍니다. 나는 정말로 뷰를 생성하고 뷰 모델을 내 목록 뷰의 뷰 모델로 설정 한 다음 해당 뷰를 탐색하는 방법을 수행 한 후에 수행합니다. 감사 – silverlightStumped

관련 문제