From 559890c482f5973f06aafdfec9550fee5ba3c7f2 Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 09 十一月 2026 17:02:15 +0800
Subject: [PATCH] feat: CAN 模拟器 TCP 化 + 多设备并发调试 + 后台生命周期管理

---
 Plugin.SeqEditor/SeqEditor.xaml.cs |   57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 56 insertions(+), 1 deletions(-)

diff --git a/Plugin.SeqEditor/SeqEditor.xaml.cs b/Plugin.SeqEditor/SeqEditor.xaml.cs
index 3d95679..7bef44c 100644
--- a/Plugin.SeqEditor/SeqEditor.xaml.cs
+++ b/Plugin.SeqEditor/SeqEditor.xaml.cs
@@ -1,9 +1,12 @@
 using HMI.Base;
 using HMI.UI;
 using Panuon.WPF.UI;
+using Plugin.SeqEditor.Entity;
 using Plugin.SeqEditor.Util;
 using Plugin.SeqEditor.ViewModel;
+using System.Web.UI.WebControls;
 using System.Windows;
+using System.Windows.Controls;
 using System.Windows.Data;
 using System.Windows.Input;
 
@@ -79,10 +82,62 @@
         //var width = treeListView.ActualWidth;
 
         //columns[0].Width = columns[0].Width + (width - columns[0].Width - columns[1].Width - columns[2].Width - columns[3].Width);
-        
+
         //foreach (var col in columns) { 
         //    col.Width = 
         //}
     }
+
+    public void HandleStatus(ItemContainerGenerator cg, StepUI step, bool status)
+    {
+        DependencyObject dObject = cg.ContainerFromItem(step);
+        if (status == true)
+        {
+            if (dObject is TreeViewItem item)
+            {
+                if (step.Children != null && step.Children.Count > 0)
+                {
+                    if (item.IsExpanded != status)
+                    {
+                        item.IsExpanded = status;
+                        item.UpdateLayout();
+                    }
+                    foreach (var child in step.Children)
+                    {
+                        HandleStatus(item.ItemContainerGenerator, child, status);
+                    }
+                }
+            }
+        }
+        else
+        {
+            if (dObject is TreeViewItem item)
+            {
+                if (step.Children != null && step.Children.Count > 0)
+                {
+                    foreach (var child in step.Children)
+                    {
+                        HandleStatus(item.ItemContainerGenerator, child, status);
+                    }
+                    item.IsExpanded = status;
+                }
+            }
+        }
+    }
+
+    public bool expandAll = false;
+    private void Button_Click(object sender, RoutedEventArgs e)
+    {
+        treeList.UpdateLayout();
+        foreach (var item in treeList.Items)
+        {
+            if (item is StepUI step)
+            {
+                HandleStatus(treeList.ItemContainerGenerator, step, !expandAll);
+            }
+        }
+        expandAll = !expandAll;
+        //treeAll.Content = expandAll ? "一键收起" : "一键展开";
+    }
 }
 

--
Gitblit v1.9.1