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);
}
}
}