2014-08-27 11 views
3

목표는 MVVM 솔루션에서 Hardcoded WPF NotifyTrayIcon을 사용하여 작업 트레이에서 창을 숨기거나 표시하는 것입니다. 문제는 CommandParameter이 항상 null 인 것으로 보이므로 코드가 충돌하게됩니다. 나는 다양한 바인딩을 시도했다. :은 ContextMenu의 CommandParameter를 사용하여 창을 전달합니다.

CommandParameter="{Binding Mode=OneWay, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:MainWindow}}}" 

CommandParameter="{Binding ElementName=window, Mode=OneWay}" 

등. 그러나 모든 것은 null, 어떤 제안을 되 돌린다?

감사

+1

출력 창에서 WPF 디버그 메시지를 보거나 컨텍스트 메뉴가 시각적 트리에서 분리 된 경우 PlacementTarget을 참조하십시오. – Aybe

+1

보기 모델을보기 모델에 전달하는 것이 MVVM이 아니기 때문에 원하는대로 수행하십시오. – Will

답변

0

당신은 단지 하나 개의 창을 가지고 있다면 당신은 단순히 Application.Current.MainWindow을 사용할 수 있습니다.

그 이상인 경우 Application.Current.Windows 컬렉션에서 좋은 것을 검색 할 수 있습니다.

+0

이것은 질문에 대답하지는 않았지만 문제를 해결했습니다. 감사합니다. – DukeNukem

+0

@DukeNukem "더 간단 할수록 좋습니다"는 IT에서 종종 잊어 버리는 규칙입니다. :) – Pragmateek

+0

이것은 전혀 도움이되지 않으며 많은 다른 사람도 의심합니다. @DukeNukem이 말했듯이, 질문에 답하지 않고, 대화 상자의 "취소"버튼의 명령 매개 변수에 현재 대화를 명령 매개 변수로 전달하지 못합니다. – ProfK