From 8b0e025296ada3552e50dad2ca02f6b1e40bb97b Mon Sep 17 00:00:00 2001
From: lixiaojun <1287241240@qq.com>
Date: 星期二, 10 十二月 2024 20:29:54 +0800
Subject: [PATCH] 增加方案删除和更新

---
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/02-visual/03-vm/SimulationVisualVmListHelper.cs |   60 ++++++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 38 insertions(+), 22 deletions(-)

diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/02-visual/03-vm/SimulationVisualVmListHelper.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/02-visual/03-vm/SimulationVisualVmListHelper.cs
index 0575a59..33123aa 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/02-visual/03-vm/SimulationVisualVmListHelper.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/02-visual/03-vm/SimulationVisualVmListHelper.cs
@@ -12,40 +12,48 @@
         /// <summary>
         /// 
         /// </summary>
-        public SimulationVisualVmListHelper(SimulationVisualListHelper visualListHelper, SimulationCalcuResultHelper calcuResultHelper)
+        public SimulationVisualVmListHelper
+            (
+                SimulationVisualListHelper visualListHelper,
+                SimulationCalcuResultHelper calcuResultHelper
+            )
         {
             _visualListHelper = visualListHelper;
             _calcuResultHelper = calcuResultHelper;
+            _visualListHelper.InitialEvent += () => Initial();
+            Initial();
         }
 
         private SimulationVisualListHelper _visualListHelper = null;//鍙鍒楄〃杈呭姪绫�
         private SimulationCalcuResultHelper _calcuResultHelper = null;//璁$畻缁撴灉杈呭姪绫�
         private Dictionary<string, HydroVisualViewModel> _dict;//瀛楀吀
 
+        //鍒濆鍖�
+        private void Initial()
+        {
+            _dict = new Dictionary<string, HydroVisualViewModel>();
+            var allVisualDict = _visualListHelper.GetVisualDict();
+            if (allVisualDict != null && allVisualDict.Count > 0)
+            {
+                var allCalcuResultVisualDict = _calcuResultHelper.GetVisualDict();
+                foreach (var visualKeyValue in allVisualDict)
+                {
+                    var vm = HydroVisualViewModelBuilder.CreateVisualViewModel(visualKeyValue.Value, _visualListHelper.HydroInfo);
+                    var calcuVisualResult = allCalcuResultVisualDict?.GetValue(visualKeyValue.Key);
+                    if (calcuVisualResult != null)
+                    {
+                        vm.UpdateCalcuProperty(calcuVisualResult);
+                    }
+                    _dict.Add(visualKeyValue.Key, vm);
+                }
+            }
+        }
+
         /// <summary>
         /// 鑾峰彇鍙瑙嗗浘瀛楀吀
         /// </summary>
         public Dictionary<string, HydroVisualViewModel> GetVisualDict()
         {
-            if (_dict == null)
-            {
-                _dict = new Dictionary<string, HydroVisualViewModel>();
-                var allVisualDict = _visualListHelper.GetVisualDict();
-                if (allVisualDict != null && allVisualDict.Count > 0)
-                {
-                    var allCalcuResultVisualDict = _calcuResultHelper.GetVisualDict();
-                    foreach (var visualKeyValue in allVisualDict)
-                    {
-                        var vm = HydroVisualViewModelBuilder.CreateVisualViewModel(visualKeyValue.Value, _visualListHelper.HydroInfo);
-                        var calcuVisualResult = allCalcuResultVisualDict?.GetValue(visualKeyValue.Key);
-                        if (calcuVisualResult != null)
-                        {
-                            vm.UpdateCalcuProperty(calcuVisualResult);
-                        }
-                        _dict.Add(visualKeyValue.Key, vm);
-                    }
-                }
-            }
             return _dict;
         }
 
@@ -55,7 +63,7 @@
         public List<HydroVisualViewModel> GetVisualList()
         {
             var dict = GetVisualDict();
-            return dict.Values.ToList();
+            return dict?.Values.ToList();
         }
 
         /// <summary>
@@ -68,6 +76,10 @@
                 return default;
             }
             var dict = GetVisualDict();
+            if (dict == null || dict.Count < 1)
+            {
+                return default;
+            }
             if (dict.ContainsKey(code))
             {
                 return dict[code];
@@ -106,7 +118,7 @@
         public void UpdateProperty()
         {
             var dict = GetVisualDict();
-            dict.ForEach(x => x.Value.UpdateProperty());
+            dict?.ForEach(x => x.Value.UpdateProperty());
         }
 
         /// <summary>
@@ -150,6 +162,10 @@
         public void UpdateCalcuProperty(HydroCalcuResult calcuResult)
         {
             var dict = GetVisualDict();
+            if (dict == null || dict.Count < 1)
+            {
+                return;
+            }
             var allCalcuResultVisualDict = calcuResult?.GetVisualDict();
             foreach (var visualKeyValue in dict)
             {

--
Gitblit v1.9.3