internal void ProcessDrop(ColumnManagerCell draggedCell) { ColumnReorderingDragSourceManager manager = null; if (draggedCell != null) { manager = draggedCell.DragSourceManager as ColumnReorderingDragSourceManager; } if ((manager != null) && (manager.IsAnimatedColumnReorderingEnabled)) { manager.CommitReordering(); } else { int oldPosition = draggedCell.ParentColumn.VisiblePosition; int newPosition = this.ParentColumn.VisiblePosition; if (m_dropMarkAdorner != null) { DropMarkAlignment alignment = m_dropMarkAdorner.Alignment; this.HideDropMark(); if (draggedCell.ParentColumn.VisiblePosition < newPosition) { if (alignment == DropMarkAlignment.Near) { draggedCell.ParentColumn.VisiblePosition = newPosition - 1; } else { draggedCell.ParentColumn.VisiblePosition = newPosition; } } else { if (alignment == DropMarkAlignment.Near) { draggedCell.ParentColumn.VisiblePosition = newPosition; } else { draggedCell.ParentColumn.VisiblePosition = newPosition + 1; } } // This will force every Rows to update there layout ColumnReorderingEventArgs e = new ColumnReorderingEventArgs(ColumnManagerCell.ColumnReorderingEvent, oldPosition, newPosition); this.RaiseEvent(e); } } }
internal void ProcessDrop( ColumnManagerCell draggedCell ) { ColumnReorderingDragSourceManager manager = null; if( draggedCell != null ) { manager = draggedCell.DragSourceManager as ColumnReorderingDragSourceManager; } if( ( manager != null ) && ( manager.IsAnimatedColumnReorderingEnabled ) ) { manager.CommitReordering(); } else { int oldPosition = draggedCell.ParentColumn.VisiblePosition; int newPosition = this.ParentColumn.VisiblePosition; if( m_dropMarkAdorner != null ) { DropMarkAlignment alignment = m_dropMarkAdorner.Alignment; this.HideDropMark(); if( draggedCell.ParentColumn.VisiblePosition < newPosition ) { if( alignment == DropMarkAlignment.Near ) { draggedCell.ParentColumn.VisiblePosition = newPosition - 1; } else { draggedCell.ParentColumn.VisiblePosition = newPosition; } } else { if( alignment == DropMarkAlignment.Near ) { draggedCell.ParentColumn.VisiblePosition = newPosition; } else { draggedCell.ParentColumn.VisiblePosition = newPosition + 1; } } // This will force every Rows to update there layout ColumnReorderingEventArgs e = new ColumnReorderingEventArgs( ColumnManagerCell.ColumnReorderingEvent, oldPosition, newPosition ); this.RaiseEvent( e ); } } }