public virtual void Remove (ColumnHeader column) { if (!Contains (column)) return; list.Remove (column); column.SetListView (null); int rem_display_index = column.InternalDisplayIndex; int [] display_indices = new int [list.Count]; for (int i = 0; i < display_indices.Length; i++) { ColumnHeader col = (ColumnHeader) list [i]; int display_index = col.InternalDisplayIndex; if (display_index < rem_display_index) { display_indices [i] = display_index; } else { display_indices [i] = (display_index - 1); } } column.InternalDisplayIndex = -1; owner.ReorderColumns (display_indices, true); //UIA Framework event: Item Removed OnUIACollectionChangedEvent (new CollectionChangeEventArgs (CollectionChangeAction.Remove, column)); }
internal void AddColumn (ColumnHeader newCol, int index, bool redraw) { int column_count = Columns.Count; newCol.SetListView (this); int [] display_indices = new int [column_count]; for (int i = 0; i < column_count; i++) { ColumnHeader col = Columns [i]; if (i == index) { display_indices [i] = index; } else { int display_index = col.InternalDisplayIndex; if (display_index < index) { display_indices [i] = display_index; } else { display_indices [i] = (display_index + 1); } } } ReorderColumns (display_indices, redraw); Invalidate (); }