namespace HStation.WinFrmUI.Xhs { public partial class SinglePumpAnalyInfoCtrl : DevExpress.XtraEditors.XtraUserControl { public SinglePumpAnalyInfoCtrl() { InitializeComponent(); this.gridView1.SetNormalEditView(); this.gridView2.SetNormalView(); this.gridView3.SetNormalView(); this.gridView1.ShowingEditor += GridView1_ShowingEditor; this.repColor.ColorAlignment = DevExpress.Utils.HorzAlignment.Center; this.repColor.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor; this.repColor.ButtonsStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder; this.colName.OptionsColumn.AllowEdit = false; this.colName.OptionsColumn.ReadOnly = true; this.colColor.OptionsColumn.AllowEdit = false; this.colColor.OptionsColumn.ReadOnly = true; this.colCurrentSpeed.OptionsColumn.AllowEdit = false; this.colCurrentSpeed.OptionsColumn.ReadOnly = true; } /// /// 设置曲线 /// public event Action SetEvent; /// /// 设置曲线信息 /// public event Action SetInfoEvent; /// /// 设置设计点 /// public event Action SetDesignPointEvent; /// /// 保存事件 /// public event Action SaveEvent; private List _all_binding_list = null; public void SetBindingData(List vm_list) { _all_binding_list = new List(); if (vm_list != null && vm_list.Any()) { _all_binding_list = vm_list.Select(x => new SinglePumpAnalyViewModel(x)).ToList(); } this.singlePumpAnalyViewModelBindingSource.DataSource = _all_binding_list; this.singlePumpAnalyViewModelBindingSource.ResetBindings(false); this.gridView1.BestFitColumns(); this.gridView2.BestFitColumns(); this.gridView3.BestFitColumns(); } public void SetDesignPoint(double flow, double head) { this.txtDesignQ.EditValue = flow; this.txtDesignH.EditValue = head; } public void Add(SinglePumpAnalyViewModel vm) { if (_all_binding_list == null) _all_binding_list = new List(); _all_binding_list.Add(vm); this.singlePumpAnalyViewModelBindingSource.DataSource = _all_binding_list; this.singlePumpAnalyViewModelBindingSource.ResetBindings(false); this.gridView1.BestFitColumns(); this.gridView2.BestFitColumns(); this.gridView3.BestFitColumns(); } /// /// 获取列表 /// public List GetList() { if (_all_binding_list == null || !_all_binding_list.Any()) { return default; } return _all_binding_list.Select(x => new SinglePumpAnalyViewModel(x)).ToList(); } //验证 private void GridView1_ShowingEditor(object sender, CancelEventArgs e) { if (this.gridView1.FocusedColumn == this.colCurrentHz || this.gridView1.FocusedColumn == this.colExtendRatio || this.gridView1.FocusedColumn == this.colCurrentSpeed) { var vm = this.gridView1.GetFocusedRow() as SinglePumpAnalyViewModel; if (vm.IsDefault) { e.Cancel = true; } } } //值变换 private void gridView1_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e) { if (e.Column == this.colCurrentHz) { var vm = this.gridView1.GetRow(e.RowHandle) as SinglePumpAnalyViewModel; if (vm.CurrentHz < 10 || vm.CurrentHz > 50) { return; } vm.Calc(); this.singlePumpAnalyViewModelBindingSource.ResetBindings(false); this.SetEvent?.Invoke(vm.Id, vm.CurrentHz, vm.ExtendRatio, vm.QhCalc, vm.QeCalc, vm.QpCalc); } else if (e.Column == this.colExtendRatio) { var vm = this.gridView1.GetRow(e.RowHandle) as SinglePumpAnalyViewModel; vm.Calc(); this.singlePumpAnalyViewModelBindingSource.ResetBindings(false); this.SetEvent?.Invoke(vm.Id, vm.CurrentHz, vm.ExtendRatio, vm.QhCalc, vm.QeCalc, vm.QpCalc); } } /// /// 设置查询信息 /// public void SetQueryInfo(string id, Yw.WinFrmUI.Phart.PumpQueryPointViewModel query_pt) { if (query_pt == null) return; if (_all_binding_list == null || !_all_binding_list.Any()) return; var vm = _all_binding_list.Find(x => x.Id == id); if (vm == null) return; vm.QueryQ = query_pt.Q > 0 ? $"{query_pt.Q:N1}" : string.Empty; vm.QueryH = query_pt.H > 0 ? $"{query_pt.H:N1}" : string.Empty; vm.QueryE = query_pt.E > 0 ? $"{query_pt.E:N1}" : string.Empty; vm.QueryP = query_pt.P > 0 ? $"{query_pt.P:N1}" : string.Empty; this.singlePumpAnalyViewModelBindingSource.ResetBindings(false); } /// /// 设置设计点信息 /// public void SetSectPointList(List vm_list) { if (_all_binding_list == null || !_all_binding_list.Any()) return; _all_binding_list.ForEach(vm => { vm.SectQ = string.Empty; vm.SectH = string.Empty; vm.SectE = string.Empty; vm.SectP = string.Empty; var pt = vm_list?.Find(x => x.Id == vm.Id); if (pt != null) { vm.SectQ = pt.QueryQ; vm.SectH = pt.QueryH; vm.SectE = pt.QueryE; vm.SectP = pt.QueryP; }; }); this.singlePumpAnalyViewModelBindingSource.ResetBindings(false); } //设置设计点 private void btnSetDesignPoint_Click(object sender, EventArgs e) { if (!double.TryParse(this.txtDesignQ.Text, out double design_q)) return; if (!double.TryParse(this.txtDesignH.Text, out double design_h)) return; this.SetDesignPointEvent?.Invoke(design_q, design_h); } private void btnSave_Click(object sender, EventArgs e) { if (XtraMessageBox.Show("是否保存数据?", "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information) != DialogResult.Yes) return; var vm = _all_binding_list.Last(); this.SaveEvent?.Invoke(vm); } } }