Я хочу получать команды в моей ViewModel (т. Е. Не иметь никакого кода в поле зрения).У меня есть настройки KeyBindings в представлении, но я не уверен, как создать команду для модели представления, как мне это сделать?Я пробовал код ниже, но он никогда не вызывается.
Я получаю эту ошибку в окне вывода
Ошибка пути BindingExpression: свойство 'ShowHelp' не найдено в 'object' '' String '(HashCode = -1833871577)'.BindingExpression: Path = ShowHelp;DataItem = 'String' (HashCode = -1833871577);целевым элементом является KeyBinding (HashCode = 60325168);Свойство target - 'Command' (тип 'ICommand')
viewModel определяется следующим образом: (обратите внимание, это работает для всех других привязок в окне)
<app:ViewModel x:Key="viewModel"></app:ViewModel>
XAML:
<Window.InputBindings>
<KeyBinding Command="{Binding ShowHelp, Source=viewModel}" Gesture="ALT+H" />
</Window.InputBindings>
Код ViewModel
Здесь я начал с кода ViewModel для выполнения команды, если это не так, пожалуйста, сообщите:)
public class ShowHelpCommand : ICommand
{
public bool CanExecute(object parameter)
{
return true;
}
public event EventHandler CanExecuteChanged;
public void Execute(object parameter)
{
Console.WriteLine("SHOW HELP");
}
}
public ICommand ShowHelp { get; set; }
ShowHelp = new ShowHelpCommand();