Вы можете использовать событие Opening
. Событие args имеет свойство Cancel, чтобы вы могли проверить состояние своего приложения и решить, показывать ли меню (ничего не делая) или не показывать его (путем установки e.Cancel = true
). Однако, как упоминает @Grzenio, я бы нашел более интуитивно понятным, если элемент, который я щелкнул правой кнопкой, стал автоматически выбран.
Другой вариант - использовать событие Opening
, чтобы заполнить контекстное меню только одним отключенным элементом с текстом, например (no item is selected)
; это сообщит пользователю о том, почему команда недоступна.
Я использовал это с if (List.SelectedItems.Count == 0) {e.Cancel = true;} Спасибо! – sooprise