From 4607e20cecf567ee2e86f9a07158deaa1b74d622 Mon Sep 17 00:00:00 2001
From: lixiaojun <1287241240@qq.com>
Date: 星期一, 09 十二月 2024 15:05:19 +0800
Subject: [PATCH] 方案修改

---
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/03-q3d/XhsProjectSimulationQ3dCtrl.cs |   54 ++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 44 insertions(+), 10 deletions(-)

diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/03-q3d/XhsProjectSimulationQ3dCtrl.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/03-q3d/XhsProjectSimulationQ3dCtrl.cs
index 7338ade..3a32150 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/03-q3d/XhsProjectSimulationQ3dCtrl.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/03-q3d/XhsProjectSimulationQ3dCtrl.cs
@@ -5,28 +5,62 @@
         public XhsProjectSimulationQ3dCtrl()
         {
             InitializeComponent();
-            this.drawer1.SelectedObjectsChanged += Drawer1_SelectedObjectsChanged;
         }
 
-        public event Action<string> ClickParterEvent;
+        /// <summary>
+        /// 閫夋嫨缁勪欢鏀瑰彉浜嬩欢
+        /// </summary>
+        public event Action<List<string>> SelectedPartersChangedEvent;
+
+        //鑾峰彇姘村姏淇℃伅鏂规硶
+        private Func<Yw.Model.HydroModelInfo> _hydroInfoFunc = null;
+
+        //鑾峰彇缁樺埗鍣�
+        private Yw.WinFrmUI.Q3d.Drawer GetDrawer()
+        {
+            if (_drawer == null)
+            {
+                _drawer = new Yw.WinFrmUI.Q3d.Drawer();
+                _drawer.Dock = DockStyle.Fill;
+                _drawer.SelectedObjectsChanged += (sender, obj) =>
+                {
+                    var codes = obj?.Select(x => x.ID).Distinct().ToList();
+                    this.SelectedPartersChangedEvent?.Invoke(codes);
+                };
+            }
+            return _drawer;
+        }
+        //Q3d缁樺埗鍣�
+        private Yw.WinFrmUI.Q3d.Drawer _drawer = null;
 
 
         /// <summary>
-        /// 缁戝畾鏁版嵁
+        /// 鍒濆鍖栨暟鎹�
         /// </summary>
-        public void SetBindingData(Yw.Model.HydroModelInfo rhs)
+        public void InitialData(Func<Yw.Model.HydroModelInfo> hydroInfoFunc)
         {
-
-            var netWork = Yw.WinFrmUI.HydroQ3dTransferHelper.ToNetworkViewModel(rhs);
-
-            this.drawer1.SetData(netWork);
+            _hydroInfoFunc = hydroInfoFunc;
+            var drawer = GetDrawer();
+            this.Controls.Clear();
+            this.Controls.Add(drawer);
+            LoadData();
         }
 
-        private void Drawer1_SelectedObjectsChanged(object sender, List<Yw.WinFrmUI.Q3d.IBaseViewModel> e)
+        //鍔犺浇鏁版嵁
+        private void LoadData()
         {
-            this.ClickParterEvent?.Invoke(e.FirstOrDefault()?.ID);
+            var hydroInfo = _hydroInfoFunc?.Invoke();
+            if (hydroInfo == null)
+            {
+                return;
+            }
+            var network = Yw.WinFrmUI.HydroQ3dTransferHelper.ToNetworkViewModel(hydroInfo);
+            var drawer = GetDrawer();
+            drawer.SetData(network);
         }
 
 
+
+
     }
 }

--
Gitblit v1.9.3