namespace Yw.WinFrmUI { public partial class SetHydroPumpWorkingInfoCtrl : DevExpress.XtraEditors.XtraUserControl, ISetHydroVisualWorkingInfoCtrl { public SetHydroPumpWorkingInfoCtrl() { InitializeComponent(); this.layoutControl1.SetupLayoutControl(); InitialLinkStatus(); } /// /// 查看组件事件 /// public event Action HydroViewEvent; private Yw.Model.HydroVisualInfo _visual = null;//组件 private HydroPumpWorkingInfoViewModel _workingInfo = null;//工况 /// /// 绑定数据 /// public void SetBindingData(Yw.Model.HydroVisualInfo visual) { var pump = visual as Yw.Model.HydroPumpInfo; if (pump == null) { return; } _visual = pump; this.layoutGroupCaption.Text = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pump); if (!string.IsNullOrEmpty(visual.Name)) { this.layoutGroupCaption.Text = visual.Name; } _workingInfo = new HydroPumpWorkingInfoViewModel(pump); UpdateBindingData(_workingInfo); } /// /// 更新绑定 /// public void UpdateBindingData(HydroVisualWorkingInfoViewModel workingInfo) { if (_visual == null) { return; } _workingInfo = workingInfo as HydroPumpWorkingInfoViewModel; if (_workingInfo == null) { return; } this.imgCmbLinkStatus.EditValue = _workingInfo.LinkStatus; this.txtCurrentHz.EditValue = Math.Round(_workingInfo.CurrentHz, 1); } /// /// 获取工况 /// public HydroVisualWorkingInfoViewModel GetWorkingInfo() { if (_workingInfo == null) { return default; } _workingInfo.LinkStatus = this.imgCmbLinkStatus.EditValue?.ToString(); _workingInfo.CurrentHz = double.Parse(this.txtCurrentHz.EditValue.ToString()); return _workingInfo; } //初始化管段状态 private void InitialLinkStatus() { this.imgCmbLinkStatus.Properties.BeginUpdate(); this.imgCmbLinkStatus.Properties.Items.Clear(); this.imgCmbLinkStatus.Properties.Items.Add(HydroLinkStatusHelper.GetStatusName(Yw.Hydro.PumpStatus.Open), Yw.Hydro.PumpStatus.Open, -1); this.imgCmbLinkStatus.Properties.Items.Add(HydroLinkStatusHelper.GetStatusName(Yw.Hydro.PumpStatus.Closed), Yw.Hydro.PumpStatus.Closed, -1); this.imgCmbLinkStatus.Properties.EndUpdate(); } //查看部件 private void layoutGroupCaption_CustomButtonClick(object sender, DevExpress.XtraBars.Docking2010.BaseButtonEventArgs e) { if (_visual == null) { return; } this.HydroViewEvent?.Invoke(_visual); } //开关状态决定设定频率的可用性 private void imgCmbLinkStatus_EditValueChanged(object sender, EventArgs e) { var linkStatus = this.imgCmbLinkStatus.EditValue?.ToString(); if (linkStatus == Yw.Hydro.PumpStatus.Open) { this.txtCurrentHz.Properties.ReadOnly = false; } else { this.txtCurrentHz.Properties.ReadOnly = true; } } } }