From 7ddeb60ea935a8e1cfb2e835f7ba6898879d5716 Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期二, 05 十一月 2024 13:03:06 +0800 Subject: [PATCH] 增加属性相关更新方法 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/XhsProjectSimulationPropertyCtrl.cs | 97 ++++++++++++++++++++++++++++++++++++------------ 1 files changed, 73 insertions(+), 24 deletions(-) diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/XhsProjectSimulationPropertyCtrl.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/XhsProjectSimulationPropertyCtrl.cs index 5d8aa94..9899f2e 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/XhsProjectSimulationPropertyCtrl.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/XhsProjectSimulationPropertyCtrl.cs @@ -28,6 +28,11 @@ /// </summary> public event Action<string, string> BlinkLinkParterEvent; + /// <summary> + /// 灞炴�у�兼敼鍙樹簨浠� + /// </summary> + public event Func<Yw.Model.HydroParterInfo, bool> PropertyValueChangedEvent; + //姘村姏淇℃伅鏂规硶 private Func<Yw.Model.HydroModelInfo> _hydroInfoFunc = null; private Func<List<HydroCalcuResult>> _allHydroCalcuResultListFunc = null; @@ -42,21 +47,31 @@ this.hydroParterPropertyCtrl1.InitialData(hydroInfoFunc); } - /// <summary> - /// 閫夋嫨缁勪欢 - /// </summary> - public void SelectParter(long id) + //鑾峰彇姘村姏淇℃伅 + private Yw.Model.HydroModelInfo GetHydroInfo() { var hydroInfo = _hydroInfoFunc?.Invoke(); if (hydroInfo == null) { this.hydroParterPropertyCtrl1.SelectedObject = null; + return default; + } + return hydroInfo; + } + + /// <summary> + /// 閫夋嫨缁勪欢 + /// </summary> + public void SelectParter(long id) + { + var hydroInfo = GetHydroInfo(); + if (hydroInfo == null) + { return; } var allParterList = hydroInfo.GetAllParters(); - var parter = allParterList.Find(x => x.ID == id); - var vm = Yw.WinFrmUI.HydroParterPropertyViewModelBuilder.CreateViewModel(parter, hydroInfo); - this.hydroParterPropertyCtrl1.SelectedObject = vm; + var parter = allParterList?.Find(x => x.ID == id); + SelectParter(parter); } /// <summary> @@ -64,44 +79,70 @@ /// </summary> public void SelectParter(string code) { - var hydroInfo = _hydroInfoFunc?.Invoke(); + var hydroInfo = GetHydroInfo(); if (hydroInfo == null) { - this.hydroParterPropertyCtrl1.SelectedObject = null; return; } var allParterList = hydroInfo.GetAllParters(); - var parter = allParterList.Find(x => x.Code == code); - var vm = Yw.WinFrmUI.HydroParterPropertyViewModelBuilder.CreateViewModel(parter, hydroInfo); - this.hydroParterPropertyCtrl1.SelectedObject = vm; + var parter = allParterList?.Find(x => x.Code == code); + SelectParter(parter); } /// <summary> /// 閫夋嫨缁勪欢 /// </summary> - public void SelectParter(Yw.Model.HydroParterInfo parter, List<Yw.Model.HydroParterInfo> allParterList) + public void SelectParter(Yw.Model.HydroParterInfo parter) { - var hydroInfo = _hydroInfoFunc?.Invoke(); + var hydroInfo = GetHydroInfo(); if (hydroInfo == null) { - this.hydroParterPropertyCtrl1.SelectedObject = null; return; } - var vm = Yw.WinFrmUI.HydroParterPropertyViewModelBuilder.CreateViewModel(parter, hydroInfo); - this.hydroParterPropertyCtrl1.SelectedObject = vm; + if (parter != null) + { + var vm = Yw.WinFrmUI.HydroParterViewModelBuilder.CreateViewModel(parter, hydroInfo); + this.hydroParterPropertyCtrl1.SelectedObject = vm; + } } /// <summary> - /// 鏇存柊璁$畻灞炴�� + /// 鍙栨秷閫夋嫨缁勪欢 /// </summary> - public void UpdateCalcuProperty(Yw.WinFrmUI.HydroCalcuResult rhs) + public void CancelSelectParter() + { + this.hydroParterPropertyCtrl1.SelectedObject = null; + } + + /// <summary> + /// 鏇存柊灞炴�� + /// </summary> + public void UpdateProperty() { var vm = this.hydroParterPropertyCtrl1.SelectedObject; if (vm == null) { return; } - vm.UpdateCalcuProperty(rhs); + vm.UpdateProperty(); + this.hydroParterPropertyCtrl1.UpdateRows(); + } + + /// <summary> + /// 鏇存柊璁$畻灞炴�� + /// </summary> + public void UpdateCalcuProperty(Yw.WinFrmUI.HydroCalcuResult calcuResult) + { + if (calcuResult == null) + { + return; + } + var vm = this.hydroParterPropertyCtrl1.SelectedObject; + if (vm == null) + { + return; + } + vm.UpdateCalcuProperty(calcuResult); this.hydroParterPropertyCtrl1.UpdateRows(); } @@ -130,7 +171,7 @@ var bol = AssetsMatchingParasHelper.Apply(hydroInfo, output); if (bol) { - propViewModel.Update(); + propViewModel.UpdateProperty(); this.hydroParterPropertyCtrl1.UpdateRows(); } return bol; @@ -184,9 +225,17 @@ } //灞炴�у彂鐢熸敼鍙� - private bool HydroParterPropertyCtrl1_PropertyValueChangedEvent(HydroParterViewModel obj) + private bool HydroParterPropertyCtrl1_PropertyValueChangedEvent(HydroParterViewModel parterViewModel) { - return false; + if (parterViewModel == null) + { + return false; + } + if (this.PropertyValueChangedEvent == null) + { + return false; + } + return this.PropertyValueChangedEvent.Invoke(parterViewModel.Vmo); } //灞炴�ф鍦ㄥ彂鐢熸敼鍙� @@ -227,7 +276,7 @@ bol = AssetsMatchingParasHelper.Apply(hydroInfo, output); if (bol) { - propertyViewModel.Update(); + propertyViewModel.UpdateProperty(); } }; dlg.ShowDialog(); -- Gitblit v1.9.3