public static void ColumnsToTreeViewAdv(TreeViewAdv treeViewAdv, List <ColumnData> columns) { treeViewAdv.Columns.Clear(); treeViewAdv.NodeControls.Clear(); foreach (ColumnData columnData in columns) { NamedTreeColumn treeColumn = new NamedTreeColumn(); treeColumn.Name = columnData.Name; treeColumn.Header = columnData.Header; treeColumn.SortOrder = columnData.SortOrder; treeColumn.TooltipText = columnData.TooltipText; treeColumn.Width = columnData.Width; treeViewAdv.Columns.Add(treeColumn); foreach (var columnItem in columnData.Items) { switch (columnItem.Type) { case ColumnItemType.NodeCheckBox: NodeCheckBox nodeCheckBox = new NodeCheckBox(); nodeCheckBox.DataPropertyName = columnItem.DataPropertyName; nodeCheckBox.EditEnabled = columnItem.EditEnabled; nodeCheckBox.LeftMargin = columnItem.LeftMargin; nodeCheckBox.HorizontalAlign = columnItem.HorizontalAlign; nodeCheckBox.ParentColumn = treeColumn; treeViewAdv.NodeControls.Add(nodeCheckBox); break; case ColumnItemType.NodeIcon: NodeIcon nodeIcon = new NodeIcon(); nodeIcon.DataPropertyName = columnItem.DataPropertyName; nodeIcon.LeftMargin = columnItem.LeftMargin; nodeIcon.HorizontalAlign = columnItem.HorizontalAlign; nodeIcon.ScaleMode = columnItem.ImageScaleMode; nodeIcon.ParentColumn = treeColumn; treeViewAdv.NodeControls.Add(nodeIcon); break; case ColumnItemType.NodeTextBox: NodeTextBox nodeTextBox = new NodeTextBox(); nodeTextBox.DataPropertyName = columnItem.DataPropertyName; nodeTextBox.IncrementalSearchEnabled = columnItem.IncrementalSearchEnabled; nodeTextBox.LeftMargin = columnItem.LeftMargin; nodeTextBox.ParentColumn = treeColumn; nodeTextBox.UseCompatibleTextRendering = true; treeViewAdv.NodeControls.Add(nodeTextBox); break; } } } }
internal void SortColumn(NamedTreeColumn column) { if (column == null) return; List<ModNode> nodes = null; switch (column.Name) { case ModSelectionColumnsInfo.COLUMNMOD: nodes = ((ModSelectionTreeModel)tvModSelection.Model).Nodes.Cast<ModNode>().ToList(); nodes.Sort(delegate(ModNode node1, ModNode node2) { if (column.SortOrder == SortOrder.Ascending) return node1.Text.CompareTo(node2.Text); else return node2.Text.CompareTo(node1.Text); }); ((ModSelectionTreeModel)tvModSelection.Model).Nodes.Clear(); foreach (ModNode modNode in nodes) ((ModSelectionTreeModel)tvModSelection.Model).Nodes.Add(modNode); break; default: nodes = ((ModSelectionTreeModel)tvModSelection.Model).Nodes.Cast<ModNode>().ToList(); nodes.Sort(delegate(ModNode node1, ModNode node2) { NodeControl nodeControl = null; foreach (NodeControl control in tvModSelection.NodeControls) { if (control.ParentColumn == column) { nodeControl = control; break; } } string propName = nodeControl.GetType().GetProperty("DataPropertyName").GetValue(nodeControl, null).ToString(); object obj1 = node1.GetType().GetProperty(propName).GetValue(node1, null); object obj2 = node2.GetType().GetProperty(propName).GetValue(node2, null); string value1 = (obj1 == null) ? string.Empty : obj1.ToString(); string value2 = (obj2 == null) ? string.Empty : obj2.ToString(); if (column.SortOrder == SortOrder.Ascending) return value1.CompareTo(value2); else return value2.CompareTo(value1); }); ((ModSelectionTreeModel)tvModSelection.Model).Nodes.Clear(); foreach (ModNode modNode in nodes) ((ModSelectionTreeModel)tvModSelection.Model).Nodes.Add(modNode); break; } InvalidateView(); }
public static void ColumnsToTreeViewAdv(TreeViewAdv treeViewAdv, List<ColumnData> columns) { treeViewAdv.Columns.Clear(); treeViewAdv.NodeControls.Clear(); foreach (ColumnData columnData in columns) { NamedTreeColumn treeColumn = new NamedTreeColumn(); treeColumn.Name = columnData.Name; treeColumn.Header = columnData.Header; treeColumn.SortOrder = columnData.SortOrder; treeColumn.TooltipText = columnData.TooltipText; treeColumn.Width = columnData.Width; treeViewAdv.Columns.Add(treeColumn); foreach (var columnItem in columnData.Items) { switch (columnItem.Type) { case ColumnItemType.NodeCheckBox: NodeCheckBox nodeCheckBox = new NodeCheckBox(); nodeCheckBox.DataPropertyName = columnItem.DataPropertyName; nodeCheckBox.EditEnabled = columnItem.EditEnabled; nodeCheckBox.LeftMargin = columnItem.LeftMargin; nodeCheckBox.HorizontalAlign = columnItem.HorizontalAlign; nodeCheckBox.ParentColumn = treeColumn; treeViewAdv.NodeControls.Add(nodeCheckBox); break; case ColumnItemType.NodeIcon: NodeIcon nodeIcon = new NodeIcon(); nodeIcon.DataPropertyName = columnItem.DataPropertyName; nodeIcon.LeftMargin = columnItem.LeftMargin; nodeIcon.HorizontalAlign = columnItem.HorizontalAlign; nodeIcon.ScaleMode = columnItem.ImageScaleMode; nodeIcon.ParentColumn = treeColumn; treeViewAdv.NodeControls.Add(nodeIcon); break; case ColumnItemType.NodeTextBox: NodeTextBox nodeTextBox = new NodeTextBox(); nodeTextBox.DataPropertyName = columnItem.DataPropertyName; nodeTextBox.IncrementalSearchEnabled = columnItem.IncrementalSearchEnabled; nodeTextBox.LeftMargin = columnItem.LeftMargin; nodeTextBox.ParentColumn = treeColumn; nodeTextBox.UseCompatibleTextRendering = true; treeViewAdv.NodeControls.Add(nodeTextBox); break; } } } }
public static List <ColumnData> GetColumnData(TreeViewAdv treeViewAdv) { Dictionary <int, ColumnData> columns = new Dictionary <int, ColumnData>(); foreach (TreeColumn col in treeViewAdv.Columns) { NamedTreeColumn column = col as NamedTreeColumn; if (column == null) { continue; } columns.Add(column.Index, new ColumnData() { Name = column.Name, Header = column.Header, SortOrder = column.SortOrder, TooltipText = column.TooltipText, Width = column.Width }); } foreach (NodeControl nodeControl in treeViewAdv.NodeControls) { ColumnData column = columns[nodeControl.ParentColumn.Index]; var columnItem = new ColumnItemData(); if (nodeControl.GetType() == typeof(NodeCheckBox)) { columnItem.Type = ColumnItemType.NodeCheckBox; } else if (nodeControl.GetType() == typeof(NodeIcon)) { columnItem.Type = ColumnItemType.NodeIcon; } else if (nodeControl.GetType() == typeof(NodeTextBox)) { columnItem.Type = ColumnItemType.NodeTextBox; } switch (columnItem.Type) { case ColumnItemType.NodeCheckBox: columnItem.DataPropertyName = ((NodeCheckBox)nodeControl).DataPropertyName; columnItem.EditEnabled = ((NodeCheckBox)nodeControl).EditEnabled; columnItem.LeftMargin = ((NodeCheckBox)nodeControl).LeftMargin; break; case ColumnItemType.NodeIcon: columnItem.DataPropertyName = ((NodeIcon)nodeControl).DataPropertyName; columnItem.LeftMargin = ((NodeIcon)nodeControl).LeftMargin; columnItem.ImageScaleMode = ((NodeIcon)nodeControl).ScaleMode; break; case ColumnItemType.NodeTextBox: columnItem.DataPropertyName = ((NodeTextBox)nodeControl).DataPropertyName; columnItem.IncrementalSearchEnabled = ((NodeTextBox)nodeControl).IncrementalSearchEnabled; columnItem.LeftMargin = ((NodeTextBox)nodeControl).LeftMargin; break; } column.Items.Add(columnItem); } return(columns.Values.ToList()); }