From 9d1660270272180cd71147d6ddd53d1382643d2e Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 02 十一月 2026 18:00:14 +0800
Subject: [PATCH] merge: 并入远程 Initial commit 作为历史根节点

---
 HMI.UI/Controls/treegrid/Controls/TreeListView.cs |   86 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 86 insertions(+), 0 deletions(-)

diff --git a/HMI.UI/Controls/treegrid/Controls/TreeListView.cs b/HMI.UI/Controls/treegrid/Controls/TreeListView.cs
new file mode 100644
index 0000000..ab9e828
--- /dev/null
+++ b/HMI.UI/Controls/treegrid/Controls/TreeListView.cs
@@ -0,0 +1,86 @@
+锘縰sing System.Windows;
+using System.Windows.Controls;
+
+namespace HMI.UI
+{
+    public class TreeListView : TreeView
+    {
+        public static readonly DependencyProperty ColumnsProperty =
+            DependencyProperty.Register("Columns", typeof(GridViewColumnCollection), typeof(TreeListView),
+                new PropertyMetadata(new GridViewColumnCollection()));
+
+        public GridViewColumnCollection Columns
+        {
+            get { return (GridViewColumnCollection)GetValue(ColumnsProperty); }
+            set { SetValue(ColumnsProperty, value); }
+        }
+
+        public static readonly DependencyProperty ColumnHeaderContainerStyleProperty =
+            DependencyProperty.Register("ColumnHeaderContainerStyle", typeof(Style), typeof(TreeListView),
+                new PropertyMetadata(null));
+
+        public Style ColumnHeaderContainerStyle
+        {
+            get { return (Style)GetValue(ColumnHeaderContainerStyleProperty); }
+            set { SetValue(ColumnHeaderContainerStyleProperty, value); }
+        }
+
+        static TreeListView()
+        {
+            DefaultStyleKeyProperty.OverrideMetadata(typeof(TreeListView),
+                new FrameworkPropertyMetadata(typeof(TreeListView)));
+        }
+
+        public TreeListView()
+        {
+            Columns = new GridViewColumnCollection();
+        }
+
+        protected override DependencyObject GetContainerForItemOverride()
+        {
+            return new TreeListViewItem(0, this);
+        }
+    }
+
+    public class TreeListViewItem : TreeViewItem
+    {
+        public static readonly DependencyProperty ColumnsProperty =
+            DependencyProperty.Register("Columns", typeof(GridViewColumnCollection), typeof(TreeListViewItem),
+                new PropertyMetadata(null));
+
+        public int level { get; private set; }
+        private TreeListView root;
+
+        public TreeListViewItem(int level, TreeListView root)
+        {
+            this.level = level;
+            this.root = root;
+            this.Loaded += TreeListViewItem_Loaded;
+        }
+
+        public GridViewColumnCollection Columns
+        {
+            get { return (GridViewColumnCollection)GetValue(ColumnsProperty); }
+            set { SetValue(ColumnsProperty, value); }
+        }
+
+        static TreeListViewItem()
+        {
+            DefaultStyleKeyProperty.OverrideMetadata(typeof(TreeListViewItem),
+                new FrameworkPropertyMetadata(typeof(TreeListViewItem)));
+        }
+
+        private void TreeListViewItem_Loaded(object sender, RoutedEventArgs e)
+        {
+            if (root is TreeListView treeListView)
+            {
+                Columns = treeListView.Columns;
+            }
+        }
+
+        protected override DependencyObject GetContainerForItemOverride()
+        {
+            return new TreeListViewItem(level + 1, root);
+        }
+    }
+}

--
Gitblit v1.9.1