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;
}
}
}
}