using System.ComponentModel; using System.Drawing.Design; using DevComponents.DotNetBar.SuperGrid.Primitives; namespace DevComponents.DotNetBar.SuperGrid { /// /// Represents the collection of grid items. /// [Editor("DevComponents.SuperGrid.Design.GridRowCollectionEditor, DevComponents.SuperGrid.Design, Version=14.1.0.37, Culture=neutral, PublicKeyToken=26d81176cfa2b486", typeof(UITypeEditor))] public class GridItemsCollection : CustomCollection { #region ClearItems /// /// ClearItems /// protected override void ClearItems() { int n = Items.Count; for (int i = 0; i < n; i++) { GridContainer item = Items[i] as GridContainer; if (item != null) { GridContainer parent = item.Parent as GridContainer; if (parent != null) parent.MergeScan = null; break; } } if (FloatLastItem == true) n--; for (int i = 0; i < n; i++) DetachItem(Items[i] as GridContainer, true); base.ClearItems(); } #endregion #region RemoveItem /// /// RemoveItem /// /// protected override void RemoveItem(int index) { DetachItem(Items[index] as GridContainer, false); base.RemoveItem(index); } #endregion #region DetachItem private void DetachItem(GridContainer item, bool clear) { if (item != null) { item.DetachNestedRows(false); if (clear == false) item.Parent = null; GridPanel panel = item as GridPanel; if (panel != null) panel.DataBinder.Clear(); } } #endregion } }