private void LoadChild(List <T> list, bool newChild) { if (list == null) { return; } int dataindex = _control._list.IndexOf(_item); int viewindex = this.ListView.Items.IndexOf(this); Color clr = Color.FromArgb(GetNewLuminance(this.BackColor.R), GetNewLuminance(this.BackColor.G), GetNewLuminance(this.BackColor.B)); foreach (T i in list) { if (newChild) { _control._list.Insert(++dataindex, i); } XmlListViewItem <T> node = new XmlListViewItem <T>(i, _control); node.BackColor = clr; Children.Add(node); if (_control._isLoading) { _control._indexCounter++; this.ListView.Items.Insert(_control._indexCounter, node); } else { this.ListView.Items.Insert(++viewindex, node); } } }
private void _listView_ItemCheck(object sender, ItemCheckEventArgs e) { XmlListViewItem <T> node = _listView.Items[e.Index] as XmlListViewItem <T>; if (node == null) { return; } switch (e.NewValue) { case CheckState.Checked: { node.Expand(); if (node.Valid) { node.Item.Enable = true; node.ForeColor = ActiveColor; } else { e.NewValue = CheckState.Unchecked; } break; } case CheckState.Unchecked: { node.Collaps(); node.Item.Enable = false; node.ForeColor = DefaultColor; break; } } }
public void RefreshList(List <T> list) { _list = list; _listView.Items.Clear(); if (list == null) { return; } List <T> rootList = new List <T>(); foreach (T i in list) { if (i.Element.IsRoot()) { rootList.Add(i); } } _isLoading = true; _indexCounter = 0; foreach (T i in rootList) { XmlListViewItem <T> item = _listView.Items.Add(new XmlListViewItem <T>(i, this)) as XmlListViewItem <T>; _indexCounter++; } _isLoading = false; }
public T GetSelectedItem() { if (_listView.SelectedItems.Count < 1) { return(default(T)); } XmlListViewItem <T> item = _listView.SelectedItems[0] as XmlListViewItem <T>; return(item.Item); }
private void DropChild(XmlListViewItem <T> item) { if (item == null) { return; } foreach (XmlListViewItem <T> c in item.Children) { DropChild(c); c.ListView.Items.Remove(c); c.Item.Enable = false; } item.Children.Clear(); }
private void _listView_DoubleClick(object sender, EventArgs e) { if (_listView.SelectedItems.Count < 1) { return; } XmlListViewItem <T> item = _listView.SelectedItems[0] as XmlListViewItem <T>; if (item.Valid) { return; } if (DoubleClick != null) { DoubleClick(this, e); } }