2013-06-15 3 views
3

마법사 스타일 환경에서 4 개의 사용자 컨트롤 (화면)이 포함 된 창 컨트롤이 있습니다. (즉, 오직 하나의 사용자 콘트롤 만이 항상 보일 수있다) 윈도우 콘트롤은 모든 사용자 콘트롤들 사이의 주요 내비게이션으로서 동작하는 일련의 버튼들을 갖는다.사용자 컨트롤에서 창으로의 WPF MVVM 이벤트 알림

---------------------------------- 
|        | 
|  SCREEN x of 4   | 
|        | 
---------------------------------- 
|        | 
|  Back Next Cancel | 
---------------------------------- 

마법사는 사용자가 각 화면을 완료 할 때 정보 프로필을 작성합니다. 사용자가 제공하는 정보가 포함될 INotifyPropertyChanged을 구현하는 프로필 유형을 정의했습니다. 여태까지는 그런대로 잘됐다.

제 질문은 : 첫 번째 사용자 정의 컨트롤 (4 분의 1 화면)이 프로필 유형을 수정하면 어떻게 알림을 보내나요? 나는 MVVM을 사용하고 코드 숨김을 사용하려고하지 않고있다.

첫 번째 사용자 정의 컨트롤에서 이벤트를 설정하려고했습니다. 창은 해당 이벤트의 구독자이지만 작동하지 않습니다.

사용자 컨트롤이 주 창에 무슨 일이 발생했는지 알리는 더 나은 방법이 있습니까?

+0

당신이 쓴 무엇에 기초하여, '황금'링크를하다 표준은 다양한 버튼을 뷰 모델의 명령에 바인딩하는 것입니다. 관련 명령이 실행되면 뷰 모델은 이벤트 수집기를 사용하여 관심있는 모든 구성 요소에 정보를 브로드 캐스팅 할 수 있습니다. –

답변

0

어떤 MVVM 프레임 워크를 사용하고 있습니까? 그들 대부분은 뷰 모델 간의 통신을 처리하기 위해 Mediator 패턴을 구현했습니다.

Cinch V2 및 here을 사용하여 패턴을 구현하는 방법에 대한 설명을 찾아 볼 수 있으며 사용 방법을 보여주는 코드도 있습니다.

특정 MVVM 프레임 워크를 사용하지 않는 경우 위 구현에서 아이디어를 가져 와서 코드에 적용하십시오!

+0

현재 MVVM 프레임 워크를 사용하고 있지 않습니다. 그러나 나는 너에게 내게 갈 방향을 주었다고 생각한다. – coson

0

MVVM은 클릭 핸들러 대신 명령을 사용합니다. 당신이 사용할 준비가 ICommand 인터페이스의 구현을해야하거나 간단한 일을 유지하려면 어떤 MVVM oriented Framework

에서 그것을 얻을 수 있도록, 여기 how to use commands

관련 문제