namespace Yw.WinFrmUI { public partial class SetHydroValveWorkingInfoCtrl : DevExpress.XtraEditors.XtraUserControl, ISetHydroVisualWorkingInfoCtrl { public SetHydroValveWorkingInfoCtrl() { InitializeComponent(); this.layoutControl1.SetupLayoutControl(); InitialLinkStatus(); } /// /// 查看组件事件 /// public event Action HydroViewEvent; private Yw.Model.HydroValveInfo _parter = null;//组件 private HydroValveWorkingInfoViewModel _workingInfo = null;//工况 /// /// 绑定数据 /// public void SetBindingData(Yw.Model.HydroVisualInfo parter) { var valve = parter as Yw.Model.HydroValveInfo; if (valve == null) { return; } _parter = valve; this.layoutGroupCaption.Text = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Valve); if (!string.IsNullOrEmpty(parter.Name)) { this.layoutGroupCaption.Text = parter.Name; } _workingInfo = new HydroValveWorkingInfoViewModel(valve); UpdateBindingData(_workingInfo); } /// /// 更新绑定 /// public void UpdateBindingData(HydroVisualWorkingInfoViewModel workingInfo) { if (_parter == null) { return; } _workingInfo = workingInfo as HydroValveWorkingInfoViewModel; if (_workingInfo == null) { return; } this.imgCmbLinkStatus.EditValue = _workingInfo.LinkStatus; this.txtOpeningDegree.EditValue = _workingInfo.OpeningDegree; if (_parter.ValveType == Yw.Hydro.ValveType.TCV) { this.txtOpeningDegree.Properties.ReadOnly = false; } else { this.txtOpeningDegree.Properties.ReadOnly = true; } } /// /// 获取工况 /// public HydroVisualWorkingInfoViewModel GetWorkingInfo() { if (_workingInfo == null) { return default; } _workingInfo.LinkStatus = this.imgCmbLinkStatus.EditValue?.ToString(); _workingInfo.OpeningDegree = double.Parse(this.txtOpeningDegree.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.ValveStatus.None), Yw.Hydro.ValveStatus.None, -1); this.imgCmbLinkStatus.Properties.Items.Add(HydroLinkStatusHelper.GetStatusName(Yw.Hydro.ValveStatus.Open), Yw.Hydro.ValveStatus.Open, -1); this.imgCmbLinkStatus.Properties.Items.Add(HydroLinkStatusHelper.GetStatusName(Yw.Hydro.ValveStatus.Closed), Yw.Hydro.ValveStatus.Closed, -1); this.imgCmbLinkStatus.Properties.EndUpdate(); } //查看部件 private void layoutGroupCaption_CustomButtonClick(object sender, DevExpress.XtraBars.Docking2010.BaseButtonEventArgs e) { if (_parter == null) { return; } this.HydroViewEvent?.Invoke(_parter); } } }