@Drottarutarnum
Любопытный любитель

Как выполнить команду по событию KeyDown для TextBox?

Как выполнить команду по событию KeyDown в TextBox?
Использую WPF
  • Вопрос задан
  • 362 просмотра
Решения вопроса 1
lexxpavlov
@lexxpavlov
Программист, преподаватель
Можно использовать конвертер i:InvokeCommandAction из System.Windows.Interactivity.

1) Добавить сборку System.Windows.Interactivity с помощью добавления ссылки (она в списке расширений).
5cf0c5efb3bee685207836.png
2) Добавить указанную сборку в xaml:
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"

3) Использовать i:EventTrigger и i:InvokeCommandAction:
<TextBox>
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="KeyDown">
            <i:InvokeCommandAction Command="{Binding KeyDownCommand}"/>
        </i:EventTrigger>
    </i:Interaction.Triggers>
</TextBox>


Но если вы хотите там вызывать только обработку представления, например, запретить определённые клавиши (то есть, не нужны данные из слоя бизнес-логики), то есть смысл обработку сделать обычным способом - в code-behind (xaml.cs).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
petermzg
@petermzg
Самый лучший программист
А что мешает написать в code-behind функцию, что будет присоединена к контролу
<TextBox KeyDown="KeyEvents"></TextBox>
из которой и выполните команду.
code-behind и XAML это уровень представления.
И через DataContext получите вашу ViewModel
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы