using DevExpress.XtraEditors; using DevExpress.XtraTabbedMdi; namespace Yw.WinFrmUI { public partial class HydroPumpBulkSetListCtrl : DevExpress.XtraEditors.XtraUserControl, IHydroParterBulkSetListCtrl { public HydroPumpBulkSetListCtrl() { InitializeComponent(); this.gridView1.SetNormalView(30); this.gridView1.RegistCustomDrawRowIndicator(40); InitialLinkStatus(); } /// /// 水力点击事件 /// public event Action HydroClickEvent; /// /// 是否拥有水利列表 /// public bool HasHydroList { get { return _allBindingList != null && _allBindingList.Count > 0; } } //所有列表 private List _allList = null; //所有绑定列表 private List _allBindingList = null; /// /// 绑定数据 /// public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo) { _allList = new List(); if (hydroInfo != null && hydroInfo.Pumps != null && hydroInfo.Pumps.Count > 0) { foreach (var pump in hydroInfo.Pumps) { var vm = new HydroPumpBulkSetViewModel(pump); _allList.Add(vm); } } Search(); } //查询 private void Search() { if (_allList == null || _allList.Count < 1) { return; } var name = this.txtName.Text.Trim(); var code = this.txtCode.Text.Trim(); var modelType = this.txtModelType.Text.Trim(); var linkStatus = this.imgCmbLinkStatus.EditValue?.ToString(); _allBindingList = _allList; if (!string.IsNullOrEmpty(name)) { _allBindingList = _allBindingList.Where(x => !string.IsNullOrEmpty(x.Name) && x.Name.Contains(name)).ToList(); } if (!string.IsNullOrEmpty(code)) { _allBindingList = _allBindingList.Where(x => !string.IsNullOrEmpty(x.Code) && x.Code.Contains(code)).ToList(); } if (!string.IsNullOrEmpty(modelType)) { _allBindingList = _allBindingList.Where(x => !string.IsNullOrEmpty(x.ModelType) && x.ModelType.Contains(modelType)).ToList(); } if (!string.IsNullOrEmpty(linkStatus)) { _allBindingList = _allBindingList.Where(x => x.LinkStatus == HydroLinkStatusHelper.GetStatusName(linkStatus)).ToList(); } this.hydroPumpBulkSetViewModelBindingSource.DataSource = _allBindingList; this.hydroPumpBulkSetViewModelBindingSource.ResetBindings(false); } //初始化管段状态 private void InitialLinkStatus() { this.imgCmbLinkStatus.Properties.BeginUpdate(); this.imgCmbLinkStatus.Properties.Items.Clear(); this.imgCmbLinkStatus.Properties.Items.Add("全部", string.Empty, -1); this.imgCmbLinkStatus.Properties.Items.Add(HydroLinkStatusHelper.GetStatusName(Yw.Hydro.LinkStatus.Open), Yw.Hydro.LinkStatus.Open, -1); this.imgCmbLinkStatus.Properties.Items.Add(HydroLinkStatusHelper.GetStatusName(Yw.Hydro.LinkStatus.Closed), Yw.Hydro.LinkStatus.Closed, -1); this.imgCmbLinkStatus.Properties.EndUpdate(); } //重置 private void Reset() { this.txtName.EditValue = null; this.txtCode.EditValue = null; this.txtModelType.EditValue = null; this.imgCmbLinkStatus.EditValue = string.Empty; Search(); } //设置 private void Set() { Search(); if (_allBindingList == null || _allBindingList.Count < 1) { XtraMessageBox.Show("无可设置水泵数据"); return; } var dlg = new HydroPumpBulkSetDlg(); dlg.SetBindingData(_allBindingList.Select(x => x.Vmo).ToList()); dlg.ReloadDataEvent += (list) => { _allBindingList.ForEach(x => { x.LinkStatus = x.Vmo.LinkStatus; x.SpeedRatio = x.Vmo.SpeedRatio; x.RatedQ = x.Vmo.RatedQ; x.RatedH = x.Vmo.RatedH; x.RatedP = x.Vmo.RatedP; x.RatedN = x.Vmo.RatedN; }); this.hydroPumpBulkSetViewModelBindingSource.DataSource = _allBindingList; this.hydroPumpBulkSetViewModelBindingSource.ResetBindings(false); }; dlg.ShowDialog(); } //行点击事件 private void gridView1_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e) { var row = this.gridView1.GetRow(e.RowHandle) as HydroPumpBulkSetViewModel; if (row == null) { return; } this.HydroClickEvent?.Invoke(row.Vmo); } //查询 private void btnSearch_Click(object sender, EventArgs e) { Search(); } //重置 private void btnReset_Click(object sender, EventArgs e) { Reset(); } //设置 private void btnSet_Click(object sender, EventArgs e) { Set(); } } }