2010-07-11 5 views

답변

6

내가 두 가지 옵션을 참조하십시오

먼저, 당신은 "마커"인터페이스 및 사용과 ViewModelB을 표시 할 수있는 대신 실제 클래스 이름.

Messenger.Default.Send<string, IMessageTarget>("Something Happened"); 

이것은 내가 가장 좋아하는 솔루션은 아니지만 작동해야합니다.

또는 ViewModelA의 명확화 메시지를 전송하는 동안 당신이 ViewModelB에서 특정 토큰을 사용하여 메시지를 등록 할 수 있습니다 : ViewModelA에서

: ViewModelB에서

Messenger.Default.Send<string>("Something Happened", "MessageDisambiguator"); 

: 많은

Messenger.Default.Register<string>(
    this, 
    "MessageDisambiguator", 
    (action) => DoWork(action) 
); 

을 Cleaner를 사용하고 테스트 목적으로 ViewModelB를 조롱 할 수 있습니다.

이 더 많은 옵션이 될 수 있지만이이 늦은 시간에 내 머리의 상단에 팝업 것들입니다 수 ...

네, 감사 크리스, 나는 2 옵션을 사용하고이 나에게 꽤 좋은 것 같다
+0

. 아마도 문자열 대신에 토큰에 대해 MessengerSimpleTokens 열거 형을 만들 것입니다. –

관련 문제