public static void RemoveGroupDescription( ObservableCollection<GroupDescription> groupDescriptions, GroupLevelDescription groupLevelDescription, DataGridControl parentDataGridControl ) { if( ( groupLevelDescription == null ) || ( parentDataGridControl == null ) ) return; using( parentDataGridControl.SetQueueBringIntoViewRestrictions( AutoScrollCurrentItemSourceTriggers.CollectionViewCurrentItemChanged ) ) { groupDescriptions.Remove( groupLevelDescription.GroupDescription ); } }
public static void MoveGroupDescription( ColumnCollection targetColumns, ObservableCollection<GroupDescription> targetGroupDescriptions, GroupLevelDescription targetGroupLevelDescription, DropMarkAlignment targetAlignment, GroupLevelDescription movedGroupLevelDescription, DataGridControl parentDataGridControl ) { Debug.Assert( targetColumns != null ); Debug.Assert( targetGroupDescriptions != null ); Debug.Assert( targetGroupLevelDescription != null ); Debug.Assert( movedGroupLevelDescription != null ); if( ( parentDataGridControl == null ) || ( targetColumns == null ) || ( targetGroupDescriptions == null ) || ( targetGroupLevelDescription == null ) || ( movedGroupLevelDescription == null ) ) return; int oldPos = GroupingHelper.GetGroupDescriptionIndex( targetGroupDescriptions, movedGroupLevelDescription, DropMarkAlignment.Near ); int newPos = GroupingHelper.GetGroupDescriptionIndex( targetGroupDescriptions, targetGroupLevelDescription, targetAlignment ); if( newPos > oldPos ) { newPos--; } if( newPos != oldPos ) { Debug.Assert( oldPos < targetGroupDescriptions.Count ); using( parentDataGridControl.SetQueueBringIntoViewRestrictions( AutoScrollCurrentItemSourceTriggers.CollectionViewCurrentItemChanged ) ) { targetGroupDescriptions.Move( oldPos, newPos ); } } }