У меня есть следующие сочетания клавиш в моем главном окне:
<KeyBinding Command="{Binding OpenCommand}" Gesture="Ctrl+O"/>
<KeyBinding Command="{Binding SaveCommand}" Gesture="Ctrl+S"/>
<KeyBinding Command="{Binding CopyCommand}" Gesture="Ctrl+C"/>
<KeyBinding Command="{Binding PasteCommand}" Gesture="Ctrl+V"/>
<KeyBinding Command="{Binding CutCommand}" Gesture="Ctrl+X"/>
Клавиши "Открыть" и "Сохранить" работают нормально ... остальные ничего не делают, когда я нажимаю комбинацию клавиш. В выводе нет ошибок привязки. У меня также есть кнопки в моем меню, связанные с теми же командами, и они работают. Есть ли проблема с использованием команд, с которыми связан метод CanExecute? Я использую .Net 4.0. Любые идеи относительно того, почему действия буфера обмена не будут работать?
Обновление:
Если я связываю что-то еще (например, OpenCommand) с Ctrl + C, это работает. Если я связываю CopyCommand с другим жестом, он все равно не работает. Так что, похоже, проблема с командой. Это странно, потому что моя кнопка копирования прекрасно работает с той же CopyCommand. Вот код CopyCommand, с которым он связан:
public ICommand CopyCommand
{
get
{
if (this.copyCommand == null)
{
this.copyCommand = new RelayCommand(
param => this.Copy(),
param => this.Copy_CanExecute());
}
return this.copyCommand;
}
}