From a061384ba628a09bf4df91f50321ab22c03129aa Mon Sep 17 00:00:00 2001
From: alielie <alielie@git.com>
Date: 星期二, 18 三月 2025 20:58:36 +0800
Subject: [PATCH] Winform支持遮罩层;

---
 Plugin.TestResult/SingleCell.xaml.cs |   52 ++++++++++++++++++++++------------------------------
 1 files changed, 22 insertions(+), 30 deletions(-)

diff --git a/Plugin.TestResult/SingleCell.xaml.cs b/Plugin.TestResult/SingleCell.xaml.cs
index 60b55c7..981c6c9 100644
--- a/Plugin.TestResult/SingleCell.xaml.cs
+++ b/Plugin.TestResult/SingleCell.xaml.cs
@@ -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