using DevExpress.Utils.DragDrop; namespace HStation.WinFrmUI.Basic { public partial class SysFlagManageMainPanel : DocumentPage { public SysFlagManageMainPanel() { InitializeComponent(); this.gridView1.SetNormalView(); this.gridView1.RegistCustomDrawRowIndicator(); this.PageTitle.Caption = "标签管理"; this.PageTitle.HeaderSvgImage = this.svgImage32[0]; this.PageTitle.SvgImageSize = new Size(24, 24); this.sysFlagTreeListCtrl1.FocusedChangedEvent += ModuleTreeListCtrl1_FocusedChangedEvent; } private List _allBindingList = new List(); private int _LastRowIndex; private Yw.BLL.SysFlag _bll = null; public override void InitialDataSource() { SetBindingData(); } //聚焦切换 private async void ModuleTreeListCtrl1_FocusedChangedEvent(long typeId) { var alllist = await _bll.GetByTypeID(typeId); _allBindingList.Clear(); foreach (var item in alllist) { _allBindingList.Add(new SysFlagViewModel(item)); } this.sysFlagViewModelBindingSource.ResetBindings(false); } private void SetBindingData() { this.sysFlagTreeListCtrl1.SetBindingData(); _bll = new Yw.BLL.SysFlag(); this.sysFlagViewModelBindingSource.DataSource = _allBindingList; this.sysFlagViewModelBindingSource.ResetBindings(false); } //添加 private void BtnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var dlg = new AddSysFlagDlg(); var moduleid = this.sysFlagTreeListCtrl1.GetCurrentID(); if (moduleid == 0) { return; } dlg.SetBindingData(moduleid); dlg.ReloadDataEvent += async (rhs) => { var id = await _bll.Insert(rhs); if (id > 0) { var model = await _bll.GetByID(id); _allBindingList.Add(new SysFlagViewModel(model)); this.sysFlagViewModelBindingSource.ResetBindings(false); return true; } return false; }; dlg.ShowDialog(); } //编辑 private void barBtnEditPumpCurve_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var dlg = new EditSysFlagDlg(); var vm = this.gridView1.GetCurrentViewModel(_allBindingList); if (vm == null) { MessageBoxHelper.ShowWarning("请选择数据行"); return; } dlg.SetBindingData(vm.ID); dlg.ReloadDataEvent += async (rhs) => { if (await _bll.Update(rhs)) { vm.Reset(rhs); this.sysFlagViewModelBindingSource.ResetBindings(false); return true; } return false; }; dlg.ShowDialog(); } //删除 private async void BtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var currentVm = this.gridView1.GetCurrentViewModel(_allBindingList); if (currentVm == null) { MessageBoxHelper.ShowWarning("请选择数据行!"); return; } if (MessageBoxHelper.IsClickOk($"确认删除数据行?", "提示")) return; try { var result = await _bll.DeleteByID(currentVm.ID); if (result) { _allBindingList.Remove(currentVm); this.sysFlagViewModelBindingSource.ResetBindings(false); MessageBoxHelper.ShowSuccess($"删除成功!"); } else { MessageBoxHelper.ShowError($"删除失败!"); return; } } catch (Yw.Dto.InternalException ex) { MessageBoxHelper.ShowError(ex.ErrorMsg); return; } } //允许拖拽排序 private void barCheckItem1_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (barCheckSorter.Checked) { behaviorManager1.Attach(gridView1, behavior => { behavior.BeginDragDrop += Behavior_BeginDragDrop; behavior.DragDrop += Behavior_DragDrop; behavior.EndDragDrop += Behavior_EndDragDrop; }); } else { behaviorManager1.Detach(gridView1); } } private void Behavior_DragDrop(object sender, DragDropEventArgs e) { //behaviorManager1.Detach(gridView1); return; } private void Behavior_DragEnter(object sender, DragEnterEventArgs e) { return; } private void Behavior_BeginDragDrop(object sender, BeginDragDropEventArgs e) { _LastRowIndex = gridView1.FocusedRowHandle; var currentCellValue = gridView1.GetFocusedValue(); } //拖拽排序操作 private async void Behavior_EndDragDrop(object sender, EndDragDropEventArgs e) { var vm = this.gridView1.GetCurrentViewModel(_allBindingList); var sorterList = new List(); int i = 1; foreach (var item in _allBindingList) { sorterList.Add(new Yw.Vmo.Sorter() { ID = item.ID, SortCode = i }); i++; } if (await _bll.UpdateSorter(sorterList)) { this.sysFlagViewModelBindingSource.ResetBindings(false); } else { gridView1.FocusedRowHandle = _LastRowIndex; TipFormHelper.ShowError("修改排序失败!"); return; } } } }