public void Insert(int index, DataTreeListViewItem item)
 {
     if (index < 0 && index > base.Count)
     {
         throw new ArgumentOutOfRangeException("index");
     }
     if (item == null)
     {
         throw new ArgumentNullException("item");
     }
     if (!this.Contains(item))
     {
         base.List.Insert(index, item);
         item.Parent = this.owner;
         if (item.Parent != null)
         {
             this.owner.IsLeaf = false;
             item.IndentCount  = this.owner.IndentCount + 1;
             if (item.Parent.IsExpanded && item.Parent.IsInListView)
             {
                 item.AddToListView(this.ListView);
                 return;
             }
         }
         else
         {
             item.IndentCount = 1;
             item.AddToListView(this.ListView);
         }
     }
 }
 private void Expand()
 {
     if (!this.IsLeaf && this.IsExpanded && this.ListView != null)
     {
         this.ListView.InternalOnExpandItem(this);
         int index = base.Index;
         foreach (object obj in this.ChildrenItems)
         {
             DataTreeListViewItem dataTreeListViewItem = (DataTreeListViewItem)obj;
             dataTreeListViewItem.AddToListView(this.listView);
         }
         foreach (object obj2 in this.ChildrenItems)
         {
             DataTreeListViewItem dataTreeListViewItem2 = (DataTreeListViewItem)obj2;
             if (dataTreeListViewItem2.IsExpanded)
             {
                 dataTreeListViewItem2.Expand();
             }
         }
     }
 }