using HStation.WinFrmUI.Xhs; namespace HStation.WinFrmUI { /// /// 项目模拟属性控件 /// public partial class XhsProjectSimulationPropertyCtrl : DevExpress.XtraEditors.XtraUserControl { public XhsProjectSimulationPropertyCtrl() { InitializeComponent(); this.hydroParterPropertyCtrl1.GetHydroInfoEvent += HydroParterPropertyCtrl1_GetHydroInfoEvent; this.hydroParterPropertyCtrl1.SelectCurveEvent += HydroParterPropertyCtrl1_SelectCurveEvent; this.hydroParterPropertyCtrl1.SelectPatternEvent += HydroParterPropertyCtrl1_SelectPatternEvent; this.hydroParterPropertyCtrl1.PropertyValueChangedEvent += HydroParterPropertyCtrl1_PropertyValueChangedEvent; this.hydroParterPropertyCtrl1.PropertyValueChangingEvent += HydroParterPropertyCtrl1_PropertyValueChangingEvent; } //水力信息方法 private Func _hydroInfoFunc = null; /// /// 绑定数据 /// public void SetBindingData(Func hydroInfoFunc) { _hydroInfoFunc = hydroInfoFunc; } /// /// 选择组件 /// public void SelectParter(long id) { var hydroInfo = _hydroInfoFunc?.Invoke(); if (hydroInfo == null) { this.hydroParterPropertyCtrl1.SelectedObject = null; return; } var allParterList = hydroInfo.GetAllParters(); var parter = allParterList.Find(x => x.ID == id); var vm = Yw.WinFrmUI.HydroParterPropertyViewModelBuilder.CreateViewModel(parter, allParterList); this.hydroParterPropertyCtrl1.SelectedObject = vm; } /// /// 选择组件 /// public void SelectParter(string code) { var hydroInfo = _hydroInfoFunc?.Invoke(); 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, allParterList); this.hydroParterPropertyCtrl1.SelectedObject = vm; } /// /// 选择组件 /// public void SelectParter(Yw.Model.HydroParterInfo parter, List allParterList) { var vm = Yw.WinFrmUI.HydroParterPropertyViewModelBuilder.CreateViewModel(parter, allParterList); this.hydroParterPropertyCtrl1.SelectedObject = vm; } /// /// 更新计算属性 /// public void UpdateCalcuProperty(Yw.WinFrmUI.IHydroCalcuProperty rhs) { var vm = this.hydroParterPropertyCtrl1.SelectedObject; if (vm == null) { return; } vm.UpdateCalcuProperty(rhs); this.hydroParterPropertyCtrl1.UpdateRows(); } //获取水力信息事件 private Yw.Model.HydroModelInfo HydroParterPropertyCtrl1_GetHydroInfoEvent() { var hydroInfo = _hydroInfoFunc?.Invoke(); return hydroInfo; } //选择曲线 private bool HydroParterPropertyCtrl1_SelectCurveEvent(HydroParterPropertyViewModel propViewModel, string curveType) { switch (curveType) { case Yw.WinFrmUI.HydroCurve.Pump: { var hydroInfo = _hydroInfoFunc?.Invoke(); if (hydroInfo == null) { return false; } var vmPump = propViewModel as HydroPumpPropertyViewModel; var modelType = vmPump.ModelType; var dbId = vmPump.DbId; var curveDbId = string.Empty; if (!string.IsNullOrEmpty(vmPump.CurveQH)) { var curveQh = hydroInfo.Curves?.Find(x => x.Code == vmPump.CurveQH); curveDbId = curveQh?.DbId; } var dlg = new PumpMainCurveChoiceDlg(); dlg.SetBindingData(dbId, modelType, curveDbId); dlg.SelectCurveInfoEvent += (dbId, curveId, curveInfo) => { }; dlg.ShowDialog(); return true; } case Yw.WinFrmUI.HydroCurve.PumpQH: { return false; } case Yw.WinFrmUI.HydroCurve.PumpQP: { return false; } case Yw.WinFrmUI.HydroCurve.PumpQE: { return false; } case Yw.WinFrmUI.HydroCurve.Valve: { return true; } case Yw.WinFrmUI.HydroCurve.ValveQL: { return false; } default: break; } return false; } //选择模式 private bool HydroParterPropertyCtrl1_SelectPatternEvent(HydroParterPropertyViewModel propViewModel, string patternType) { switch (patternType) { case Yw.WinFrmUI.HydroPattern.Demand: { } break; case Yw.WinFrmUI.HydroPattern.Head: { } break; default: break; } return true; } //属性发生改变 private bool HydroParterPropertyCtrl1_PropertyValueChangedEvent(HydroParterPropertyViewModel obj) { return false; } //属性正在发生改变 private bool HydroParterPropertyCtrl1_PropertyValueChangingEvent(HydroParterPropertyViewModel arg) { return false; } } }