2012-04-17 3 views
0

일반적인 마스터 - 세부 시나리오가 있습니다. 사용자는 마스터보기에서 "새로 추가"를 클릭하고 상세보기에 세부 사항을 입력 할 수 있습니다. 예를 들어 제품의 ObservableCollection 목록이 있다고 가정 해 보겠습니다. 사용자가 "새로 추가"를 클릭하면 ObservableCollection에 새 제품 레코드를 추가 한 다음 제품 세부 정보 추가를위한 상세보기를 엽니 다. 사용자가 제품을 저장하면이 방법이 효과적입니다. 그러나 사용자가 새 제품 추가를 취소하기로 결정한 경우 마스터보기에서 ObservableCollection of Product를 제거하려면 어떻게해야합니까? 바로 지금 ObservableCollection에 대한 참조를 Details 뷰에 전달하고 두 번째로 이벤트를 사용하여 마스터 뷰에 새로운 Product 레코드 삭제에 대해 알리는 두 가지 방법을 생각해 볼 수 있습니다. 너는 무엇을 제안 하는가? 또한 특히 프리즘에서 이것을 처리하는 더 좋은 방법이 있다면 알려 주시기 바랍니다.프리즘 - 마스터보기에서 새로 추가 된 레코드를 제거하기위한 전략

안부, Nirvan.

답변

1

ObservableCollection에 대한 참조를 상세 뷰로 전달하는 것은 필요 없음입니다. 이는 바인딩 된 레코드에 대해서만 알고 있어야합니다.

사용자가 지정한 UI를 지정하지 않았으므로이를 수행하는 데 몇 가지 방법이있을 수 있습니다. 그러나 합리적으로 불가지론 할 수있는 방법 중 하나는 EventAggregator를 사용하여 마스터 뷰가 구독 할 수있는 이벤트를 게시하는 것입니다. 이 이벤트를 처리하는 방법은 마스터보기에 달려 있으며, 다른보기는 다른 방식으로 응답 할 수 있습니다. 이 특별한 경우 마스터보기는 현재 선택된 항목을 검사 할 수 있으며 새로운 항목 인 경우 (예 : 저장되지 않은 경우 ID와 같은 주요 정보가 없음) 컬렉션에서 제거하고 삭제할 수 있습니다 그것.

+0

마스터 용 UI는 DataGrid이고 UI는 TabControl의 tabitem입니다. 답장을 보내 주셔서 감사합니다 – Jatin

+0

slugster, 나는 EventAggregator를 사용하고 잘 작동합니다. 몇 줄의 기능이 작동하도록 추가해야합니다. 매우 감사합니다. – Jatin