Beispiel #1
0
        private static void RowDragOnPreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs mouseButtonEventArgs)
        {
            //Get row index from click
            //Adapted from https://social.msdn.microsoft.com/Forums/vstudio/en-US/22373fc7-c677-46a1-80ff-3e262836ecc1/right-click-in-wpf-datagrid?forum=wpf
            DataGrid g = sender as DataGrid;
            Point    p = mouseButtonEventArgs.GetPosition(g);

            if (g == null)
            {
                return;
            }

            DataGridRow selectedRow = GetRowFromPoint(g, p);

            if (selectedRow == null)
            {
                return;
            }

            //Prevent user from reordering processes not marked as orderable
            var isDraggable = (selectedRow.Item as CompileProcess)?.IsDraggable;

            if (isDraggable != null && !(bool)isDraggable)
            {
                return;
            }

            RowDragHelper.SetDraggedItem((DataGrid)sender, selectedRow.Item);
        }
Beispiel #2
0
        private static void RowDragOnPreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs mouseButtonEventArgs)
        {
            var draggedItem = RowDragHelper.GetDraggedItem(sender as DependencyObject);

            if (draggedItem == null)
            {
                return;
            }

            //disabled because it seems to glitch out when 2 custom programs are swapped
            //ExchangeRows(sender, ((DataGrid) sender).SelectedItem);

            ((DataGrid)sender).SelectedItem = draggedItem;
            RowDragHelper.SetDraggedItem(sender as DataGrid, null);
        }