public void HandleKeyBind(KeyEventArgs e)
        {
            if (!EditingMode)
            {
                return;
            }

            // key is your real pressed key
            var key = e.Key != Key.System ? e.Key : e.SystemKey;

            if (key == Key.LeftCtrl || key == Key.RightCtrl ||
                key == Key.LeftAlt || key == Key.RightAlt ||
                key == Key.LeftShift || key == Key.RightShift)
            {
                return;
            }

            try
            {
                RegisterHotKey(_modifierKeys, key);
                Display = GetDisplay(_modifierKeys, key);
                KeyBindSettings.SetSetting(_modifierKeys + "," + key, _purpose);
            }
            catch (ApplicationException)
            {
                Display = "Error: Taken";
                return;
            }

            EditingMode = false;
        }
        public KeyBindingsModel(string label, Action <KeyBindEnum> hotKeyAction, KeyBindEnum purpose)
        {
            Label         = label;
            _hotKeyAction = hotKeyAction;
            _purpose      = purpose;

            var settingsKeyBind = KeyBindSettings.GetSetting(purpose);

            if (settingsKeyBind != null && settingsKeyBind.Item2 != Key.None)
            {
                RegisterHotKey(settingsKeyBind.Item1, settingsKeyBind.Item2);
                Display = GetDisplay(settingsKeyBind.Item1, settingsKeyBind.Item2);
            }
        }
        public void HandleClick()
        {
            if (GLOBAL_EDIT_MODE)
            {
                return;
            }

            EditingMode = true;
            if (_hotKey != null)
            {
                KeyBindSettings.SetSetting("", _purpose);
                _hotKey.UnregisterHotKey();
                _hotKey.HotKeyPressed -= HotKeyOnHotKeyPressed;
            }
            Display = "";
        }