using DevExpress.Utils; using DevExpress.XtraEditors.Controls; using HStation.Vmo; namespace HStation.WinFrmUI.Assets { public partial class EditAssetsFlowmeterMainDlg : DevExpress.XtraEditors.XtraForm { public EditAssetsFlowmeterMainDlg() { InitializeComponent(); this.treeList1.InitialMultiColSettings(); this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon; } private Vmo.AssetsFlowmeterMainVmo _FlowmeterVmo = null; private List _AssetsFlowmeterCoefficient; public async void SetBindingData(Vmo.AssetsFlowmeterMainVmo FlowmeterVmo) { var bll = new BLL.AssetsFlowmeterCoefficient(); _AssetsFlowmeterCoefficient = await bll.GetAll(); this.FlowmeterCoefficientViewModelBindingSource.DataSource = _AssetsFlowmeterCoefficient; _FlowmeterVmo = FlowmeterVmo; this.TextEditName.Text = _FlowmeterVmo.Name; this.TextEditMinorLoss.Text = _FlowmeterVmo.MinorLoss.ToString(); this.DescriptionTextEdit.Text = _FlowmeterVmo.Description; this.TextEditKeyWord.Text = string.Join(",", _FlowmeterVmo.KeyWord); this.selectFlagsPopupCtrl1.SetBindingData(_FlowmeterVmo.Flags); } public event Func> ReloadDataEvent = null; //数据验证 private bool Valid() { this.dxErrorProvider1.ClearErrors(); if (string.IsNullOrEmpty(TextEditName.Text.Trim())) { this.dxErrorProvider1.SetError(this.TextEditName, "必填项"); return false; } return true; } //完成 private async void BtnOk_ClickAsync(object sender, EventArgs e) { if (!(Valid())) return; _FlowmeterVmo.Description = DescriptionTextEdit.Text.Trim(); _FlowmeterVmo.Name = TextEditName.Text.Trim(); _FlowmeterVmo.KeyWord = TextEditKeyWord.Text.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList(); if (double.TryParse(TextEditMinorLoss.Text, out double MinorLoss)) { _FlowmeterVmo.MinorLoss = MinorLoss; } _FlowmeterVmo.Flags = this.selectFlagsPopupCtrl1.SelectedFlags; if (await this.ReloadDataEvent.Invoke(_FlowmeterVmo)) { TipFormHelper.ShowSucceed("修改成功!"); } else { TipFormHelper.ShowSucceed("修改失败!"); } this.DialogResult = DialogResult.OK; this.Close(); } private void treeList1_FocusedNodeChanged(object sender, DevExpress.XtraTreeList.FocusedNodeChangedEventArgs e) { var vm = this.treeList1.GetCurrentViewModel(_AssetsFlowmeterCoefficient); if (vm == null) return; this.TextEditMinorLoss.Text = vm.MinorLoss.ToString(); } } }