From e3ca589482a056449963e7bbbd77824ded3928bc Mon Sep 17 00:00:00 2001
From: duheng <2784771470@qq.com>
Date: 星期五, 07 二月 2025 10:49:36 +0800
Subject: [PATCH] 过渡件匹配修改

---
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/02-visual/03-vm/SimulationVisualVmListHelper.cs |   78 +++++++++++++++++++++++++++-----------
 1 files changed, 55 insertions(+), 23 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..53de24a 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
@@ -1,5 +1,4 @@
 锘縰sing DevExpress.Mvvm.Native;
-using Yw.EPAnet;
 using Yw.Model;
 
 namespace HStation.WinFrmUI
@@ -12,40 +11,49 @@
         /// <summary>
         /// 
         /// </summary>
-        public SimulationVisualVmListHelper(SimulationVisualListHelper visualListHelper, SimulationCalcuResultHelper calcuResultHelper)
+        public SimulationVisualVmListHelper
+            (
+                SimulationVisualListHelper visualListHelper,
+                SimulationCalcuResultHelper calcuResultHelper
+            )
         {
             _visualListHelper = visualListHelper;
+            _visualListHelper.InitialEvent += () => Initial();
             _calcuResultHelper = calcuResultHelper;
+            _calcuResultHelper.InitialEvent += () => UpdateCalcuProperty();
+            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>
@@ -144,12 +156,32 @@
             UpdateProperty(codes);
         }
 
+        //鏇存柊璁$畻灞炴��
+        private void UpdateCalcuProperty()
+        {
+            var dict = GetVisualDict();
+            if (dict == null || dict.Count < 1)
+            {
+                return;
+            }
+            var allCalcuResultVisualDict = _calcuResultHelper?.GetVisualDict();
+            foreach (var visualKeyValue in dict)
+            {
+                var calcuVisualResult = allCalcuResultVisualDict?.GetValue(visualKeyValue.Key);
+                visualKeyValue.Value.UpdateCalcuProperty(calcuVisualResult);
+            }
+        }
+
         /// <summary>
         /// 鏇存柊璁$畻灞炴��
         /// </summary>
         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