using DevExpress.Mvvm.Native; using DevExpress.XtraEditors.Controls; using HStation.Dto; using System.Windows.Forms; using static System.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel; namespace HStation.WinFrmUI.Xhs.PumpProduct { public partial class AddPumpProductMainDlg : DevExpress.XtraEditors.XtraForm { public AddPumpProductMainDlg() { InitializeComponent(); } private Yw.BLL.SysCatalog _bll = null; private List _proplist = null; private AddPumpMainDto _PumpMain = null; //泵型号 private AddPumpPartMainDto _PumpPart = null; //泵产品 private List _PumpPropContent = null; //泵属性 private AddPumpMainAndPartMapDto _PumpMainAndPartMap = null; //泵型号和产品映射 public async void SetBindingData(long ID) { var pumpseries = await new BLL.PumpSeries().GetByID(ID); if (pumpseries != null) { _PumpMain = new AddPumpMainDto(); _PumpPart = new AddPumpPartMainDto(); _PumpMainAndPartMap = new AddPumpMainAndPartMapDto(); _PumpMainAndPartMap.SeriesID = pumpseries.ID; _PumpMain.PumpSeriesID = pumpseries.ID; _PumpPart.SeriesID = pumpseries.ID; _bll = new Yw.BLL.SysCatalog(); var alllist = await _bll.GetAll(); foreach (var item in alllist) { var imageItem = new ImageComboBoxItem(item.Name, item.ID); TextEditCatalog.Properties.Items.Add(imageItem); } _proplist = new List(); TextEditCatalog.EditValue = pumpseries.CatalogID; this.propGroupChoiceViewModelBindingSource.DataSource = _proplist; this.propGroupChoiceViewModelBindingSource.ResetBindings(false); } } public event Func, AddPumpMainAndPartMapDto, Task> ReloadDataEvent = null; //数据验证 private bool Valid() { this.dxErrorProvider1.ClearErrors(); if (string.IsNullOrEmpty(TextEditName.Text.Trim())) { this.dxErrorProvider1.SetError(this.TextEditName, "必填项"); return false; } if (string.IsNullOrEmpty(TextEditRatedFlow.Text.Trim())) { this.dxErrorProvider1.SetError(this.TextEditRatedFlow, "必填项"); return false; } if (string.IsNullOrEmpty(TextEditRatedSpeed.Text.Trim())) { this.dxErrorProvider1.SetError(this.TextEditRatedSpeed, "必填项"); return false; } if (string.IsNullOrEmpty(TextEditRatedHead.Text.Trim())) { this.dxErrorProvider1.SetError(this.TextEditRatedHead, "必填项"); return false; } return true; } //完成 private async void BtnOk_ClickAsync(object sender, EventArgs e) { if (!(Valid())) return; _PumpMain.Name = TextEditName.Text.Trim(); _PumpMain.TagName = TextEditTagName.Text.Trim(); double ratedFlow; double.TryParse(TextEditRatedFlow.Text.Trim(), out ratedFlow); _PumpMain.RatedFlow = ratedFlow; double ratedHead; double.TryParse(TextEditRatedHead.Text.Trim(), out ratedHead); _PumpMain.RatedHead = ratedHead; double ratedSpeed; double.TryParse(TextEditRatedSpeed.Text.Trim(), out ratedSpeed); _PumpMain.RatedSpeed = ratedSpeed; _PumpMain.Description = DescriptionTextEdit.Text.Trim(); double d2; double.TryParse(TextEditD2.Text.Trim(), out d2); _PumpMain.D2 = d2; double erosion; double.TryParse(TextEditErosion.Text.Trim(), out erosion); _PumpMain.Erosion = erosion; double ratedPower; double.TryParse(TextEditRatedPower.Text.Trim(), out ratedPower); _PumpMain.RatedPower = ratedPower; double ratedEfficiency; double.TryParse(TextEditRatedeffciency.Text.Trim(), out ratedEfficiency); _PumpMain.RatedEfficiency = ratedEfficiency; _PumpPart.Name = TextEditProductName.Text; _PumpPart.NO = TextEditProductNO.Text; _PumpPart.Code = TextEditProductCode.Text; _PumpPropContent = new List(); foreach (var item in _proplist) { _PumpPropContent.Add(new AddPumpPropContentDto { PropID = item.ID, PropValue = item.Value, SeriesID = _PumpPart.SeriesID }); } if (await this.ReloadDataEvent.Invoke(_PumpMain, _PumpPart, _PumpPropContent, _PumpMainAndPartMap)) { MessageBoxHelper.ShowSuccess("添加成功!"); } else { MessageBoxHelper.ShowError("添加失败!"); } this.DialogResult = DialogResult.OK; this.Close(); } //分类选择变换 private async void TextEditCatalog_SelectedValueChanged(object sender, EventArgs e) { this.gridView1.Columns["PropGroupName"].Group(); this.layoutControlGroup2.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always; this.tabbedControlGroup1.SelectedTabPage = layoutControlGroup2; _proplist.Clear(); var bll = new Yw.BLL.SysPropStruct(); var catlogID = this.TextEditCatalog.EditValue; if (catlogID == null) return; var id = Convert.ToInt64(catlogID); var catlog = await bll.GetByCatalogID(id); if (catlog == null) { this.propGroupChoiceViewModelBindingSource.ResetBindings(false); return; } foreach (var item in catlog) { foreach (var prop in item.PropList) { _proplist.Add(new PropGroupChoiceViewModel() { PropGroupName = item.Name, PropName = prop.Name, ID = prop.ID }); } } this.propGroupChoiceViewModelBindingSource.ResetBindings(false); } } }