using Mapster; namespace Yw.WinFrmUI { public partial class HydroAccuracyWorkingDlg : DevExpress.XtraBars.Ribbon.RibbonForm { public HydroAccuracyWorkingDlg() { InitializeComponent(); this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon; this.layoutControl1.SetupLayoutControl(); this.hydroWorkingListViewCtrl1.SelectedChangedEvent += HydroWorkingListViewCtrl1_SelectedChangedEvent; } private Yw.Model.HydroModelInfo _hydroInfo = null;//水力信息 private List _allMonitorList = null;//所有监测点列表 private List _allWorkingList = null;//所有工况列表 private Dictionary _allCalcuResultDict = null;//计算字典 /// /// 绑定数据 /// public void SetBindingData ( Yw.Model.HydroModelInfo hydroInfo, List allMonitorList, List allWorkingList, bool isHead = false, List allEvaluationList = null ) { if (hydroInfo == null) { return; } if (allMonitorList == null || allMonitorList.Count < 1) { return; } if (allWorkingList == null || allWorkingList.Count < 1) { return; } _hydroInfo = hydroInfo.Adapt(); _allMonitorList = allMonitorList; _allWorkingList = allWorkingList; _allCalcuResultDict = new Dictionary(); foreach (var working in allWorkingList) { _hydroInfo.UpdateWorkingInfo(working.WorkingInfo); var calcuResult = _hydroInfo.Calcu(isHead, allEvaluationList); if (calcuResult.Succeed) { var vm = HydroAccuracyHelper.Create(_hydroInfo, allMonitorList, working, calcuResult, isHead, allEvaluationList); _allCalcuResultDict.Add(working, vm); } } if (allWorkingList.Count < 2) { var working = allWorkingList[0]; this.Text = $"精度评估({working.Name})"; this.groupForWorkingList.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; this.splitter.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; this.itemForAccuracy.TextVisible = false; } this.hydroWorkingListViewCtrl1.SetBindingData(allWorkingList); } //工况选择改变 private void HydroWorkingListViewCtrl1_SelectedChangedEvent(HydroWorkingVmo working) { if (working == null) { return; } if (_allCalcuResultDict == null || _allCalcuResultDict.Count < 1) { return; } if (!_allCalcuResultDict.ContainsKey(working)) { return; } this.hydroAccuracyCtrl1.SetBindingData(_allCalcuResultDict[working]); } } }