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