Гость
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / MVVM и глобальный keybinding / 2 сообщений из 2, страница 1 из 1
11.02.2015, 17:27
    #38877275
micoloss
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVVM и глобальный keybinding
Доброго времени суток!
Столкнулся со следующей проблемой. Есть форма с TextBox:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<UserControl xmlns:behaviors="clr-namespace:....">
  ....
  <UserControl.InputBindings>        
        <KeyBinding Key="D1" Command="{Binding KeyCommand}" CommandParameter="{x:Static behaviors:HotKeyCommand.Random}"/>
  </UserControl.InputBindings>
     <Grid>	
		...
		<TextBox Name="N1"  behaviors:TextBoxBehavior.Check="true">
		...		
    </Grid>
</UserControl>


в behaviors определяется разрешенные символы для ввода:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
private static void CheckPreviewKeyDown(object sender, KeyEventArgs e)
        {
            switch (e.Key)
            {
                case Key.NumPad0:
                case Key.NumPad1:
                case Key.NumPad2:
                    break;
                default:
                    e.Handled = true;
                    break;
            }
        }



Проблема в том что когда поле N1 активно, KeyBinding Key="D1" не срабатывает - так как CheckPreviewKeyDown не пропускает этот символ. Убрать или изменить CheckPreviewKeyDown нельзя по определенным причинам. Можно ли UserControl.InputBindings как нибудь сделать глобально, чтоб он не зависел от полей ввода? Спасибо!
...
Рейтинг: 0 / 0
13.02.2015, 11:19
    #38878878
Ilya81
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVVM и глобальный keybinding
Полагаю, что перехватывать нажатие клавиш - не единственный способ ограничения разрешённых для ввода символов. Хоть банальное изменения текста на старое значение с восстановлением CaretIndex.
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / MVVM и глобальный keybinding / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]