From 687a3dfd095bc8c099b7fa6e65f0dc699fdc8f1d Mon Sep 17 00:00:00 2001 From: Shuxia Ning <NingShuxia0927@outlook.com> Date: 星期三, 08 一月 2025 13:57:33 +0800 Subject: [PATCH] 冲突 --- WinFrmUI/HStation.WinFrmUI.Basic.Core/02-SysPropManage/SysPropManageMainPanel.cs | 105 ++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 77 insertions(+), 28 deletions(-) diff --git a/WinFrmUI/HStation.WinFrmUI.Basic.Core/02-SysPropManage/SysPropManageMainPanel.cs b/WinFrmUI/HStation.WinFrmUI.Basic.Core/02-SysPropManage/SysPropManageMainPanel.cs index 7317879..a51aeb0 100644 --- a/WinFrmUI/HStation.WinFrmUI.Basic.Core/02-SysPropManage/SysPropManageMainPanel.cs +++ b/WinFrmUI/HStation.WinFrmUI.Basic.Core/02-SysPropManage/SysPropManageMainPanel.cs @@ -136,42 +136,91 @@ //鎺掑簭 private void barCheckItemSorter_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - if (barCheckSorter.Checked) + var be = this.behaviorManager1.GetBehavior<DevExpress.Utils.DragDrop.DragDropBehavior>(this.gridView1); + be.Properties.AllowDrag = barCheckSorter.Checked; + } + + private async void dragDropEvents1_DragDrop(object sender, DevExpress.Utils.DragDrop.DragDropEventArgs e) + { + var indexs = e.Data as int[]; + if (indexs == null || indexs.Length < 1) { - behaviorManager1.Attach<DragDropBehavior>(gridView1, behavior => + e.Handled = true; + return; + } + var sourceIndex = indexs[0]; + var sourceObj = this.gridView1.GetRow(sourceIndex) as SysPropViewModel; + if (sourceObj == null) + { + e.Handled = true; + return; + } + + var destIndex = this.gridView1.GetRowHandleByCP(e.Location); + if (destIndex < 0) + { + e.Handled = true; + return; + } + + var destObj = this.gridView1.GetRow(destIndex) as SysPropViewModel; + if (destObj == null) + { + e.Handled = true; + return; + } + + var sorters = new List<Yw.Vmo.Sorter>(); + + if (e.InsertType == InsertType.Before) + { + sorters.Add(new Yw.Vmo.Sorter() { ID = sourceObj.ID, SortCode = destObj.SortCode }); + _allBindingList.ForEach(x => { - // behavior.BeginDragDrop += Behavior_BeginDragDrop; - behavior.EndDragDrop += Behavior_EndDragDrop; + if (x.SortCode >= destObj.SortCode) + { + if (x != sourceObj) + { + sorters.Add(new Yw.Vmo.Sorter() { ID = x.ID, SortCode = x.SortCode + 1 }); + } + } + }); + } + else if (e.InsertType == InsertType.After) + { + sorters.Add(new Yw.Vmo.Sorter() { ID = sourceObj.ID, SortCode = destObj.SortCode + 1 }); + _allBindingList.ForEach(x => + { + if (x.SortCode > destObj.SortCode) + { + if (x != sourceObj) + { + sorters.Add(new Yw.Vmo.Sorter() { ID = x.ID, SortCode = x.SortCode + 1 }); + } + } }); } else { - behaviorManager1.Detach<DragDropBehavior>(gridView1); - } - } - - private async void Behavior_EndDragDrop(object sender, EndDragDropEventArgs e) - { - var vm = this.gridView1.GetCurrentViewModel(_allBindingList); - var sorterList = new List<Yw.Vmo.Sorter>(); - int i = 1; - foreach (var item in _allBindingList) - { - sorterList.Add(new Yw.Vmo.Sorter() { ID = item.ID, SortCode = i }); - i++; - } - var bol = await _bll.UpdateSorter(sorterList); - if (await _bll.UpdateSorter(sorterList)) - { - this.propViewModelBindingSource.ResetBindings(false); - } - else - { - // e.Effect= bol? DragDropEffects.Move : DragDropEffects.None; - // gridView1.FocusedRowHandle = _LastRowIndex; - TipFormHelper.ShowError("淇敼鎺掑簭澶辫触!"); + e.Handled = true; return; } + + var bol = await _bll.UpdateSorter(sorters); + if (!bol) + { + e.Handled = true; + return; + } + + _allBindingList.ForEach(x => + { + var sorter = sorters.Find(t => t.ID == x.ID); + if (sorter != null) + { + x.SortCode = sorter.SortCode; + } + }); } } } \ No newline at end of file -- Gitblit v1.9.3