2014-08-27 2 views
3

Цель состоит в том, чтобы скрыть/показать окно из лотка задачи с использованием Hardcoded WPF NotifyTrayIcon в решении MVVM. Проблема в том, что CommandParameter всегда кажется нулевым, что, конечно же, приводит к сбою кода. Я пробовал несколько различных привязок, в том числе:передать окно с помощью CommandParameter из ContextMenu

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

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

и т. Д., Но все возвращается обратно, любые предложения?

Благодаря

+1

Посмотрите на окно вывода, чтобы просмотреть отладочные сообщения WPF, а также контекстные меню отделены от визуального дерева, см. PlacementTarget. – Aybe

+1

Выполняйте все, что хотите, потому что передача окна в модель представления не является MVVM. – Will

ответ

0

Если у вас есть только одно окно, то вы могли бы просто использовать Application.Current.MainWindow.

Если у вас есть больше, то вы можете найти хороший номер в коллекции Application.Current.Windows.

+0

Это не ответило на вопрос, но решило проблему, спасибо. – DukeNukem

+0

@ DukeNukem «чем проще, тем лучше» - это правило, которое мы часто забываем в ИТ. :) – Pragmateek

+0

Это не помогает мне, и я подозреваю и многих других. Как говорит @DukeNukem, он не отвечает на вопрос, и я все еще могу: 't передать текущий диалог в качестве параметра команды в параметре команды кнопки «Отмена» в этом диалоге. – ProfK