using DevExpress.XtraEditors; using Yw.WinFrmUI; namespace PBS.WinFrmUI.WE { public partial class EditWaterWEDlg : DevExpress.XtraEditors.XtraForm { public EditWaterWEDlg() { InitializeComponent(); //this.IconOptions.Icon = WinFrmUI.Properties.Resources.App; // this.dataLayoutControl1.SetupLayoutControl(); } /// /// 回调事件 /// public event Func, Task> ReloadDataEvent; private List _allBindingList; private PBS.Vmo.WE.ItemVmo _model = null; private List _allUtensilList = null; private PBS.Vmo.WE.CatalogueMappingVmo _CatalogueMappingVmo; //详细信息方法 public async void SetInfoDisplay(ItemViewModel itemView) { _allBindingList = new List(); _allUtensilList = await new PBS.BLL.WE.Utensil().GetAll(); this.repositoryItemTreeListLookUpEdit1.DataSource = _allUtensilList; var allUtensilList = await new PBS.BLL.WE.UtensilMapping().GetByItemID(itemView.ID); if (allUtensilList != null) { foreach (var utensil in allUtensilList) { var model = new ItemViewModel(); model.UtensilID = utensil.UtensilID; model.UtensilCount = utensil.UtensilCount; model.RatedFlow = utensil.RatedFlow; model.MinRatedFlow = utensil.MinRatedFlow; _allBindingList.Add(model); } } this.itemViewModelBindingSource.DataSource = _allBindingList; this.textEditName.EditValue = itemView.Name; this.Text = "详细信息"; this.ColDelete.Visible = false; this.textEditName.Properties.ReadOnly = true; this.gridView1.SetNormalView(); this.layoutControlItem2.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; this.emptySpaceItem1.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; this.layoutControlItem1.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; } /// /// 绑定 /// public async void SetBindingData(PBS.Vmo.WE.ItemVmo item, long CatalogueID) { _allBindingList = new List(); _allUtensilList = await new PBS.BLL.WE.Utensil().GetAll(); this.repositoryItemTreeListLookUpEdit1.DataSource = _allUtensilList; if (item == null) { _CatalogueMappingVmo = new PBS.Vmo.WE.CatalogueMappingVmo(); _CatalogueMappingVmo.CatalogueID = CatalogueID; } else { //为编辑做准备 _model = item; var allUtensilList = await new PBS.BLL.WE.UtensilMapping().GetByItemID(item.ID); if (allUtensilList != null) { foreach (var utensil in allUtensilList) { var model = new ItemViewModel(); model.UtensilID = utensil.UtensilID; model.UtensilCount = utensil.UtensilCount; model.RatedFlow = utensil.RatedFlow; model.MinRatedFlow = utensil.MinRatedFlow; _allBindingList.Add(model); } } this.textEditName.Text = item.Name; } this.itemViewModelBindingSource.DataSource = _allBindingList; } //验证 private bool Valid() { this.dxErrorProvider1.ClearErrors(); if (string.IsNullOrEmpty(this.textEditName.Text.Trim())) { this.dxErrorProvider1.SetError(this.textEditName, "必填项"); return false; } return true; } //确定 private async void btnOk_Click(object sender, EventArgs e) { if (!Valid()) return; if (_allBindingList == null || _allBindingList.Count < 1) { TipFormHelper.ShowError("请输入用水器具数据!"); return; } if (_model == null) { _model = new PBS.Vmo.WE.ItemVmo(); _model.Name = this.textEditName.Text.Trim(); } else { _model.Name = this.textEditName.Text.Trim(); } var mappingList = new List(); foreach (var item in _allBindingList) { var model = new PBS.Vmo.WE.UtensilMappingVmo(); model.UtensilID = item.UtensilID; model.UtensilCount = item.UtensilCount; model.RatedFlow = item.RatedFlow; model.MinRatedFlow = item.MinRatedFlow; mappingList.Add(model); } if (this.ReloadDataEvent == null) return; if (!await this.ReloadDataEvent(_model, _CatalogueMappingVmo, mappingList)) { MessageBoxHelper.ShowError("设置失败!"); return; } MessageBoxHelper.ShowSuccess("设置成功!"); this.DialogResult = System.Windows.Forms.DialogResult.OK; this.Close(); } //删除 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.itemViewModelBindingSource.ResetBindings(false); } private void repositoryItemTreeListLookUpEdit1_EditValueChanged(object sender, EventArgs e) { // 获取当前选中项的值 TreeListLookUpEdit edit = sender as TreeListLookUpEdit; if (edit != null && edit.EditValue != null) { // 获取选中项的 ID long selectedID = Convert.ToInt64(edit.EditValue); var select = _allUtensilList.Find(x => x.ID == selectedID); if (select != null) { gridView1.SetFocusedRowCellValue("RatedFlow", select.RatedFlow); gridView1.SetFocusedRowCellValue("MinRatedFlow", select.MinRatedFlow); } } } } }