using DevExpress.XtraEditors.Controls;
|
using System.Data;
|
using Yw.Geometry;
|
|
namespace Yw.WinFrmUI
|
{
|
public partial class HydroPumpAnalyWorkingCheckedListCtrl : DevExpress.XtraEditors.XtraUserControl
|
{
|
public HydroPumpAnalyWorkingCheckedListCtrl()
|
{
|
InitializeComponent();
|
}
|
|
/// <summary>
|
/// 选择改变事件
|
/// </summary>
|
public event Action<List<HydroWorkingVmo>> CheckedChangedEvent;
|
|
private Yw.Model.HydroPumpInfo _pump = null;//水泵信息
|
private Dictionary<HydroWorkingVmo, HydroPumpAnalyViewModel> _allCalcuResultDict = null;//计算结果字典
|
private BindingList<HydroPumpAnalyWorkingCheckedListItemViewModel> _allBindingList = null;//所有绑定列表
|
|
/// <summary>
|
/// 绑定数据
|
/// </summary>
|
public void SetBindingData
|
(
|
Yw.Model.HydroPumpInfo pump,
|
Dictionary<HydroWorkingVmo, HydroPumpAnalyViewModel> allCalcuResultDict
|
)
|
{
|
if (pump == null)
|
{
|
return;
|
}
|
if (allCalcuResultDict == null || allCalcuResultDict.Count < 1)
|
{
|
return;
|
}
|
|
_pump = pump;
|
_allCalcuResultDict = allCalcuResultDict;
|
|
_allBindingList = new BindingList<HydroPumpAnalyWorkingCheckedListItemViewModel>();
|
foreach (var kpv in allCalcuResultDict)
|
{
|
var item = new HydroPumpAnalyWorkingCheckedListItemViewModel(kpv.Key, pump, kpv.Value);
|
_allBindingList.Add(item);
|
}
|
this.hydroPumpAnalyWorkingCheckedListItemViewModelBindingSource.DataSource = _allBindingList;
|
this.hydroPumpAnalyWorkingCheckedListItemViewModelBindingSource.ResetBindings(false);
|
}
|
|
/// <summary>
|
/// 获取选择工况列表
|
/// </summary>
|
public List<HydroWorkingVmo> GetWorkingCheckedList()
|
{
|
return _allBindingList?.Where(x => x.Checked).Select(x => x.Vmo).ToList();
|
}
|
|
//选择改变
|
private void checkedListBoxControl1_ItemCheck(object sender, DevExpress.XtraEditors.Controls.ItemCheckEventArgs e)
|
{
|
var list = GetWorkingCheckedList();
|
this.CheckedChangedEvent?.Invoke(list);
|
}
|
|
//获取项可用性
|
private void checkedListBoxControl1_GetItemEnabled(object sender, GetItemEnabledEventArgs e)
|
{
|
if (_allBindingList == null || _allBindingList.Count < 1)
|
{
|
return;
|
}
|
if (e.Index < 0)
|
{
|
return;
|
}
|
if (e.Index > _allBindingList.Count - 1)
|
{
|
return;
|
}
|
var item = _allBindingList[e.Index];
|
e.Enabled = item.Enabled;
|
}
|
|
|
}
|
}
|