private void lvwHotkeys_PreviewKeyDown(object sender, KeyEventArgs e) { if (NewHotkeyRequested == null) { return; } if (lvwHotkeys.SelectedItems.Count != 1) { return; } HotkeyEntry entry = (HotkeyEntry)lvwHotkeys.SelectedItem; Keys newKey; if (!NewHotkeyRequested(e, entry.ShortcutKey, out newKey)) { return; } bool wasNotAssigned = !entry.Assigned; entry.ShortcutKey = newKey; if (wasNotAssigned && entry.Assigned) { entry.Enabled = true; } e.Handled = true; }
protected HotkeySettableViewModel(string name) { _name = name; _category = new HotkeyEntry(_name, true); HotkeyManager hotkey = HotkeyManager.GetInstance(); hotkey.AddCategory(_category); Items.CollectionChanged += OnCollectionChanged; _category.Children = new ObservableCollectionEx <HotkeySettable>(); }