Могу ли" />

Свяжите любую нажатую клавишу с командой в VM WPF

c# wpf mvvm command key-bindings

1888 просмотра

2 ответа

853 Репутация автора

Я пытаюсь привязать любую нажатую клавишу клавиатуры к команде в ViewModel.

Я знаю, что могу связать определенный ключ, используя:

<Window.InputBindings>
    <KeyBinding Command="{Binding ChangeIdCommand}" Key="B"/>
</Window.InputBindings>

Могу ли я связать все нажатия клавиш ChangeIdCommandбез необходимости набирать их все вручную?

Автор: Idanis Источник Размещён: 18.07.2016 09:33

Ответы (2)


6 плюса

1482 Репутация автора

Попробуйте это после определения вашего окна:

<Window x:Class="wpfApplication.MainWindow"
        xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" ...>

<i:Interaction.Triggers>
    <i:EventTrigger EventName="KeyDown">
        <i:InvokeCommandAction Command="{Binding ChangeIdCommand}" />
    </i:EventTrigger>
</i:Interaction.Triggers>
Автор: Jose Размещён: 18.07.2016 09:54

-1 плюса

853 Репутация автора

Нашел ответ:

<Interactivity:Interaction.Triggers>
    <Interactivity:EventTrigger EventName="PreviewKeyDown" >
        <command:EventToCommand Command="{Binding ChangeIdCommand}" PassEventArgsToCommand="True" />
    </Interactivity:EventTrigger>
</Interactivity:Interaction.Triggers>
Автор: Idanis Размещён: 18.07.2016 11:11
Вопросы из категории :
32x32