public override void PreviewKeyDown(object sender, KeyEventArgs ea) { var key = ea.Key == Key.System ? ea.SystemKey : ea.Key; if (key.IsModifier() || _selectListers) { base.PreviewKeyDown(sender, ea); return; } switch (key) { case Key.Escape: Binding = null; Close(); break; case Key.Return: SelectListers(); break; default: if (Binding == null) { Binding = new KexBinding(Group, key, ea.KeyboardDevice.Modifiers, CommandName, null); } else if (!(Binding is KexDoubleBinding)) { Text += ", "; Binding = new KexDoubleBinding(Binding.Group, Binding.Key, Binding.Modifier, key, ea.KeyboardDevice.Modifiers, CommandName, null); } else { ea.Handled = true; return; } if (ea.KeyboardDevice.Modifiers != ModifierKeys.None) { Text += $"{ea.KeyboardDevice.Modifiers}+{key}"; } else { Text += key; } SetCaret(Text.Length); break; } ea.Handled = true; }
public KexBindingItem(KexBinding binding) : this(binding.CommandName, binding.Group) { Binding = binding; }