Можете ли вы предоставить больше входов, как в том, КАК вы регистрируете сочетания клавиш? Используете KeyBinding
? Если это так, ему уже нужно указать Command
. Поэтому в Canexecute команды верните false, если текстовое поле находится в фокусе.
Это отключит сочетания клавиш. Некоторые источники ocde с вашей стороны могут быть полезны.
EDIT
ТАК, что теперь у вас есть KeyBinding
с использованием KeyBindingCommand
, что для меня выглядит как RoutedCommand
. Если это так, то командные привязки имеют функцию CanExecute
.
m_Parent.CommandBindings.Add(new CommandBinding(KeyBindingCommand, OnExecuted, CanExcute));
В обработчике CanExecute
.... CanExecutedRoutedArgs
может / не может быть правильным ...
private void CanExecute(object sender, CanExecutedRoutedArgs args)
{
e.CanExecute = !textBox.IsFocused;
}
Код выше только для иллюстрации.