From dedcf4174c8540ee3a912daad2ff13e014e495b1 Mon Sep 17 00:00:00 2001
From: alielie <alielie@git.com>
Date: 星期五, 28 三月 2025 16:28:30 +0800
Subject: [PATCH] 优化UI组件;

---
 Plugin.TestResult/SingleCell.xaml.cs |   54 +++++++++++++++++++++++-------------------------------
 1 files changed, 23 insertions(+), 31 deletions(-)

diff --git a/Plugin.TestResult/SingleCell.xaml.cs b/Plugin.TestResult/SingleCell.xaml.cs
index b218e98..981c6c9 100644
--- a/Plugin.TestResult/SingleCell.xaml.cs
+++ b/Plugin.TestResult/SingleCell.xaml.cs
@@ -42,7 +42,7 @@
             InitializeComponent();
         }
 
-        public SingleCell(string parentName, int index,int maxSize)
+        public SingleCell(string parentName, int index, int maxSize)
         {
             this.parentName = parentName;
             this.index = index;
@@ -145,31 +145,34 @@
             if (window != null) window.UpdateSource(this.infos);
         }
 
-        public void SetInfos(string[,] infos)
-        {
-            var data = new ObservableCollection<Info>();
-            for (int i = 0; i < infos.GetLength(0); i++)
-            {
-                data.Add(new Info
-                {
-                    step = infos[i, 0],
-                    result = infos[i, 1]
-                });
-            }
-            this.infos = data;
-            if (window != null) window.UpdateSource(this.infos);
-        }
-
         public void SetInfos(Info info)
         {
             if (queue.Count >= maxSize)
             {
                 queue.TryDequeue(out var first);
+                queue.Enqueue(info);
+                this.infos = new ObservableCollection<Info>(queue);
+                if (window != null) window.UpdateSource(this.infos);
             }
-            queue.Enqueue(info);
-            var list = new ObservableCollection<Info>(queue);
-            this.infos = list;
-            if (window != null) window.UpdateSource(this.infos);
+            else
+            {
+                queue.Enqueue(info);
+                if (window != null)
+                {
+                    window.Dispatcher.Invoke(() =>
+                    {
+                        this.infos.Add(info);
+                    });
+                }
+                else
+                {
+                    Dispatcher.Invoke(() =>
+                    {
+                        this.infos.Add(info);
+                    });
+                }
+                return;
+            }
         }
 
         public void ClearInfo()
@@ -180,16 +183,5 @@
             if (window != null) window.UpdateSource(this.infos);
         }
 
-        public void SetInfos(string step, string result)
-        {
-            if (queue.Count >= maxSize)
-            {
-                queue.TryDequeue(out var info);
-            }
-            queue.Enqueue(new Info() { step = step, result = result });
-            var list = new ObservableCollection<Info>(queue);
-            this.infos = list;
-            if (window != null) window.UpdateSource(this.infos);
-        }
     }
 }

--
Gitblit v1.9.1