using System.Data; namespace Yw.WinFrmUI { public partial class HydroWorkingCheckedListVertCtrl : DevExpress.XtraEditors.XtraUserControl { public HydroWorkingCheckedListVertCtrl() { InitializeComponent(); } /// /// 选择改变事件 /// public event Action> CheckedChangedEvent; private BindingList _allBindingList = null;//所有绑定列表 /// /// 绑定数据 /// public void SetBindingData(List allWorkingList) { List allList = null; if (allWorkingList != null && allWorkingList.Count > 0) { allList = new List(); allWorkingList.ForEach(x => { var vm = new HydroWorkingCheckedListItemViewModel(x); allList.Add(vm); }); } SetBindingData(allList); } /// /// 绑定数据 /// public void SetBindingData(List allList) { _allBindingList = new BindingList(); allList?.ForEach(x => _allBindingList.Add(x)); this.hydroWorkingCheckedListItemViewModelBindingSource.DataSource = _allBindingList; this.hydroWorkingCheckedListItemViewModelBindingSource.ResetBindings(false); } /// /// 获取选择工况列表 /// /// public List GetCheckedWorkingList() { return _allBindingList?.Where(x => x.Checked).Select(x => x.Vmo).ToList(); } //选择改变 private void checkedListBoxControl1_ItemCheck(object sender, DevExpress.XtraEditors.Controls.ItemCheckEventArgs e) { var list = GetCheckedWorkingList(); this.CheckedChangedEvent?.Invoke(list); } } }