Ejemplo n.º 1
0
        protected override void OnKeyDown(KeyEventArgs e)
        {
            base.OnKeyDown(e);

            // Quit on Esc or Exit renaming session
            if (e.Key == Key.Escape)
            {
                if (!vm.HasUnsavedChanges)
                {
                    Close();
                }
            }


            if (!MainTaskList.IsKeyboardFocused && (e.Key == Key.Down || e.Key == Key.Up))
            {
                MainTaskList.Focus();
                MainTaskList.SelectedIndex = (MainTaskList.SelectedIndex == -1) ?
                                             e.Key == Key.Down ? 0 : (MainTaskList.Items.Count > 0 ? MainTaskList.Items.Count - 1 : 0) :
                                             MainTaskList.SelectedIndex;

                ListViewItem lvi = MainTaskList.ItemContainerGenerator.ContainerFromIndex(MainTaskList.SelectedIndex) as ListViewItem;
                lvi?.Focus();
            }



            // Launch selected item on enter
            if (MainTaskList.SelectedItem != null && e.Key == Key.Enter)
            {
                string _path = ((TaskItem)MainTaskList.SelectedItem).Path;
                vm.LaunchAndQuit.Execute(_path);
            }

            // Delete selected item on del
            if (MainTaskList.SelectedItem != null && e.Key == Key.Delete)
            {
                string _uid = ((TaskItem)MainTaskList.SelectedItem).UID;
                vm.RemoveItem.Execute(_uid);
            }
        }
Ejemplo n.º 2
0
 protected override void OnPreviewKeyDown(KeyEventArgs e)
 {
     base.OnPreviewKeyDown(e);
     if (Keyboard.Modifiers == ModifierKeys.Shift && MainTaskList.SelectedIndex != -1)
     {
         e.Handled = true;
         TaskItem task     = MainTaskList.SelectedItem as TaskItem;
         int      curIndex = MainTaskList.SelectedIndex;
         if (e.Key == Key.Down)
         {
             vm.MoveDown.Execute(task.UID);
             MainTaskList.Focus();
             MainTaskList.SelectedIndex = curIndex < vm.tasks.Count - 1? curIndex + 1 : curIndex;
         }
         else if (e.Key == Key.Up)
         {
             vm.MoveUp.Execute(task.UID);
             MainTaskList.Focus();
             MainTaskList.SelectedIndex = curIndex > 0 ? curIndex - 1 : curIndex;
         }
         ListViewItem lvi = MainTaskList.ItemContainerGenerator.ContainerFromIndex(MainTaskList.SelectedIndex) as ListViewItem;
         lvi?.Focus();
     }
 }