using DevExpress.XtraEditors.Controls; namespace HStation.WinFrmUI.Assets { public partial class EditAssetsPackageMainDlg : DevExpress.XtraEditors.XtraForm { public EditAssetsPackageMainDlg() { InitializeComponent(); this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon; } private Vmo.AssetsPackageMainVmo _EquipmentVmo = new(); public event Func, Task> ReloadDataEvent = null; private List _allBindingList; public async void SetBindingData(Vmo.AssetsPackageMainVmo KitMainVmo) { _EquipmentVmo = KitMainVmo; var pumpAllList = await new BLL.AssetsPumpMain().GetAll(); this.repositoryItemTreeListLookUpEdit1.DataSource = pumpAllList; var pumpList = await new BLL.AssetsPackagePumpMapping().GetByKitID(_EquipmentVmo.ID); _allBindingList = new List(); if (pumpList != null) { /* var nameCountGroups = pumpList .GroupBy(item => item.PumpMainID) .Select(group => new { Name = group.Key, Count = group.Count() }); */ foreach (var group in pumpList) { _allBindingList.Add(new PumpAccountViewModel(group.PumpMainID)); } } this.pumpAccountViewModelBindingSource.DataSource = _allBindingList; var 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); } this.textEditCatalog.EditValue = _EquipmentVmo.CatalogID; this.textEditName.Text = _EquipmentVmo.Name; this.textEditNo.Text = _EquipmentVmo.NO; this.textEditUseCount.Text = _EquipmentVmo.PumpTotal.ToString(); this.textEditDescription.Text = _EquipmentVmo.Description; } //删除 private void gridView1_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e) { if (_allBindingList == null || _allBindingList.Count < 1) return; var row = this.gridView1.GetCurrentViewModel(_allBindingList); if (row == null) return; if (e.Column == this.ColDelete) _allBindingList.Remove(row); this.pumpAccountViewModelBindingSource.DataSource = _allBindingList; this.pumpAccountViewModelBindingSource.ResetBindings(false); } //数据验证 private bool Valid() { this.dxErrorProvider1.ClearErrors(); if (string.IsNullOrEmpty(textEditName.Text.Trim())) { this.dxErrorProvider1.SetError(this.textEditName, "必填项"); return false; } if (string.IsNullOrEmpty(textEditUseCount.Text.Trim())) { this.dxErrorProvider1.SetError(this.textEditUseCount, "必填项"); return false; } if (_allBindingList != null) { int.TryParse(textEditUseCount.Text, out int UseCount); if (UseCount < _allBindingList.Count) { TipFormHelper.ShowError("使用数量大于泵数量"); return false; } } return true; } //完成 private async void BtnOk_ClickAsync(object sender, EventArgs e) { if (!(Valid())) return; _EquipmentVmo.Description = textEditDescription.Text.Trim(); _EquipmentVmo.Name = textEditName.Text.Trim(); _EquipmentVmo.NO = textEditNo.Text.Trim(); if (int.TryParse(this.textEditUseCount.Text, out int equipmentCount)) { _EquipmentVmo.PumpUseCount = equipmentCount; } if (long.TryParse(textEditCatalog.EditValue?.ToString() ?? "", out long catalogID)) { _EquipmentVmo.CatalogID = catalogID; } if (await this.ReloadDataEvent.Invoke(_EquipmentVmo, _allBindingList)) { TipFormHelper.ShowSucceed("编辑成功!"); } else { TipFormHelper.ShowError("编辑失败!"); } this.DialogResult = DialogResult.OK; this.Close(); } } }