2012-08-31 1 views
0

PRISM 및 MVVM 디자인 패턴을 사용하기 위해 Silverlight 응용 프로그램 중 하나를 다시 작성하는 중입니다.SL5 + MEF + PRISM + DataGrid + 모달 대화 상자에서 행 편집 : InteractionRequest가 답변입니까?

매우 일반적인 시나리오는보기의 DataGrid입니다. 행을 두 번 클릭하면 ChildWindow를 사용하여 행이 나타내는 엔터티를 편집 할 수 있습니다.

코드 뒤에서 DoubleClick 이벤트를 캡처하고 적절한 유형의 새 ChildWindow를 만들고 DataContext를 DataGrid.SelectedItem으로 설정하면됩니다.

그러나 PRISM 및 MVVM을 사용하여이 시나리오를 처리하는 적절한 방법이 아닙니다.

나는 무엇에 관한 조언을 원할 것입니다!

감사합니다 ...

편집 : (재? 내 제목은 ...이 작업을 수행하는 가장 좋은 방법이 될 수 InteractionRequest 것 같다) : 우리는 우리의 솔루션을 InteractionRequest으로 이동하기로 결정 끝낼했다. 우리는 거의 항상 "Notification"을 유형으로 사용하고 새로운 ViewModel (각 ChildWindow는 자체적으로)을 Content로 전달합니다.

답변

1

우리의 경우 ChildWindow보기는 자체 viewmodel을 보증하기에 충분히 복잡했습니다. 이보기는 데이터 그리드보기와 너무 가깝게 결합되지 않습니다.

그래서 우리는 XAML에서 데이터 그리드 (사실 우리는 Telerik의 데이터 그리드를 사용함)에 첨부 된 EventTrigger를 가지고 있습니다. 이벤트 트리거는 InvokeCommandAction을 사용하여 뷰 모델에서 명령을 실행합니다.

명령은 선택한 항목이 페이로드로있는 집약 된 이벤트를 게시합니다. 이 이벤트는 ChildWindow 뷰와 해당 뷰 모델 (이벤트 페이로드를 컨텍스트로 사용)을 생성하는 중앙 애플리케이션 컨트롤러에 의해 선택됩니다.

상호 작용 요청이 귀하의 경우에 잠재적으로 사용될 수 있다고 생각하지만 상호 이해 요청 뒤에있는 아이디어는 매우 간단한 확인 또는 예/아니오 상호 작용입니다. 여러 텍스트 상자, 유효성 검사 등으로 경계를 넓힐 수도 있습니다.

관련 문제