コード例 #1
0
        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;
                    }
                }
            }
        }
コード例 #2
0
        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();
        }
コード例 #3
0
        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;
                    }
                }
            }
        }
コード例 #4
0
        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());
        }