В ответ на вопрос, который вы конкретно задали:
Что я здесь не так делаю?
Я направляю вас к документации для InputGestureText
свойство :
Это свойство не связывает жест ввода с элементом меню;он просто добавляет текст в пункт меню.
Он ведет себя так, как задумано.InputGestureText
просто отображает некоторый текст в пункте меню;он не меняет поведение и, в частности, фактически не слушает этот ключевой жест.Это несколько неожиданно, учитывая, что соответствующее свойство в WinForms добавляет поведение , но оно также вызывается суффиксом Text
в имени свойства - это не жест ввода, это просто текст, которыйотображается , чтобы сообщить пользователю о жесте ввода.Он устанавливается автоматически, когда вы используете RoutedUICommand, но когда вы сами реализуете ICommand, вам нужно одновременно установить InputGestureText
и прослушать жест ключа.
То, что вы делаете неправильно, ожидает, что это свойство будет вести себяинтуитивно.Вы далеко не единственный, кого это смущает.
(Очевидный последующий вопрос: «Как добавить сочетание клавиш для моей команды MVVM», но это отдельный вопрос - итот, который задавали и отвечали в StackOverflow несколько раз, когда вы знаете, что это правильный вопрос, который вы хотите задать, вы сможете найти существующие ответы.)