using DevExpress.Xpo.Helpers;
|
using DevExpress.XtraEditors;
|
using System;
|
using System.Collections.Generic;
|
using System.ComponentModel;
|
using System.Data;
|
using System.Drawing;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.Windows.Forms;
|
|
namespace Yw.WinFrmUI
|
{
|
public partial class HydroPumpListStateEditCtrl : DevExpress.XtraEditors.XtraUserControl
|
{
|
public HydroPumpListStateEditCtrl()
|
{
|
InitializeComponent();
|
}
|
|
/// <summary>
|
/// 选择改变事件
|
/// </summary>
|
public event Action<HydroPumpListItemStateViewModel> SelectedChangedEvent;
|
|
private BindingList<HydroPumpListItemStateViewModel> _allBindingList = null;
|
|
/// <summary>
|
/// 绑定数据
|
/// </summary>
|
public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo)
|
{
|
SetBindingData(hydroInfo?.Pumps, hydroInfo);
|
}
|
|
/// <summary>
|
/// 绑定数据
|
/// </summary>
|
public void SetBindingData(List<Yw.Model.HydroPumpInfo> allPumpList, Yw.Model.HydroModelInfo hydroInfo)
|
{
|
var list = allPumpList?.Select(x => new HydroPumpListItemStateViewModel(x, hydroInfo)).ToList();
|
SetBindingData(list);
|
}
|
|
/// <summary>
|
/// 绑定数据
|
/// </summary>
|
public void SetBindingData(List<HydroPumpListItemStateViewModel> allStateList)
|
{
|
_allBindingList = new BindingList<HydroPumpListItemStateViewModel>();
|
allStateList?.ForEach(x => _allBindingList.Add(x));
|
this.hydroPumpListItemStateViewModelBindingSource.DataSource = _allBindingList;
|
this.hydroPumpListItemStateViewModelBindingSource.ResetBindings(false);
|
}
|
|
/// <summary>
|
/// 获取工况列表
|
/// </summary>
|
public List<HydroWorkingPumpViewModel> GetWorkingList()
|
{
|
return _allBindingList?.Select(x => new HydroWorkingPumpViewModel()
|
{
|
Code = x.Code,
|
LinkStatus = x.RunStatus ? Yw.Hydro.PumpStatus.Open : Yw.Hydro.PumpStatus.Closed,
|
CurrentHz = x.CurrentHz
|
}).ToList();
|
}
|
|
//
|
private void imageListBoxControl1_ContextButtonClick(object sender, DevExpress.Utils.ContextItemClickEventArgs e)
|
{
|
var vm = e.DataItem as HydroPumpListItemStateViewModel;
|
if (vm == null)
|
{
|
return;
|
}
|
var working = new HydroWorkingPumpViewModel()
|
{
|
Code = vm.Code,
|
LinkStatus = vm.RunStatus ? Yw.Hydro.PumpStatus.Open : Yw.Hydro.PumpStatus.Closed,
|
CurrentHz = vm.CurrentHz
|
};
|
var dlg = new SetHydroPumpWorkingDlg();
|
dlg.ReloadDataEvent += (rhs) =>
|
{
|
vm.RunStatus = rhs.LinkStatus == Yw.Hydro.PumpStatus.Open;
|
vm.CurrentHz = rhs.CurrentHz;
|
this.hydroPumpListItemStateViewModelBindingSource.ResetBindings(false);
|
};
|
dlg.SetBindingData(working);
|
dlg.ShowDialog();
|
}
|
|
//选择改变
|
private void imageListBoxControl1_SelectedValueChanged(object sender, EventArgs e)
|
{
|
if (_allBindingList == null || _allBindingList.Count < 1)
|
{
|
return;
|
}
|
var item = this.imageListBoxControl1.SelectedItem;
|
var vm = item as HydroPumpListItemStateViewModel;
|
if (vm == null)
|
{
|
return;
|
}
|
this.SelectedChangedEvent?.Invoke(vm);
|
}
|
|
|
}
|
}
|