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>();
        }