stasuss
@stasuss
быдлокодер со стажем

Как получить доступ к MenuItem в ContextMenu?

У меня приложение показывает иконку в трее, при клике по которой отображается контекстное меня в котором 4 первых пункта IsCheckable=True.

Но я не могу понять собственно как им ставить галки и снимать в code-behind.
В гугле не могу найти ничего кроме привязки данных, но в моем сценарии галка должна быть только на одном из 4 пунктов и я думал их переключать в коде, но не знаю как получить к ним доступ из кода.

Или я велосипед изобретаю и в WPF есть функционал для менюшек таких с переключаемыми пунктами?
  • Вопрос задан
  • 295 просмотров
Решения вопроса 2
Nipheris
@Nipheris Куратор тега C#
В гугле не могу найти ничего кроме привязки данных, но в моем сценарии галка должна быть только на одном из 4 пунктов и я думал их переключать в коде, но не знаю как получить к ним доступ из кода.

В codebehind конечно делать можно, но не нужно. Вы могли бы сделать нормальную viewmodel с четырьмя свойствами, соответствующими пунктам вашего меню и режимам, которые вы переключаете. После этого вы просто привязываете IsChecked каждого пункта меню к каждому свойству вьюмодели. А уже в ней вы реализуете логику, что если выбран один пункт, т.е. некоторое свойство из 4-х имеющихся проставлено в true, то вы снимаете true со всех остальных. Разумеется, чтобы привязка получила нужные уведомления, вы должны реализовать INotifyPropertyChanged.
Если вышесказанное для вас туманно, то я могу посоветовать что почитать, т.к. ваше решение далековато от основных идей WPF и MVVM :)
Ответ написан
stasuss
@stasuss Автор вопроса
быдлокодер со стажем
вообщем оказалось все проще чем я думал и вот так все работает:
((MenuItem)menu.Items[1]).IsChecked = false;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы