private static void ExchangeRows(object sender, object target) { var draggedRow = RowDragHelper.GetDraggedItem(sender as DependencyObject); if (draggedRow == null) { return; } if (target != null && !ReferenceEquals(draggedRow, target)) { var list = ((DataGrid)sender).ItemsSource as IList; if (list == null) { return; } int oldIndex = list.IndexOf(draggedRow); var targetIndex = list.IndexOf(target); list.Remove(draggedRow); list.Insert(targetIndex, draggedRow); //Console.WriteLine("Row Switch"); RowSwitchEventArgs args = new RowSwitchEventArgs() { PrimaryRowIndex = targetIndex, DisplacedRowIndex = oldIndex }; OnRowSwitch(args); } }
private void RowDragHelperOnRowSwitched(object sender, RowSwitchEventArgs e) { var primaryItem = OrderGrid.Items[e.PrimaryRowIndex] as CustomProgram; var displacedItem = OrderGrid.Items[e.DisplacedRowIndex] as CustomProgram; SetOrder(primaryItem, e.PrimaryRowIndex); SetOrder(displacedItem, e.DisplacedRowIndex); }
public static void OnRowSwitch(RowSwitchEventArgs e) { EventHandler <RowSwitchEventArgs> handler = RowSwitched; handler?.Invoke(typeof(RowDragHelper), e); }