duheng
2024-10-25 59e5e0bf989993c0dce1851e34bcbe4bfb42ed56
WinFrmUI/HStation.WinFrmUI.Basic/00-SysTypeManage/SysTypeManageMainPanel.cs
@@ -1,4 +1,7 @@
namespace HStation.WinFrmUI.Basic
using DevExpress.Utils.Behaviors;
using DevExpress.Utils.DragDrop;
namespace HStation.WinFrmUI.Basic
{
    public partial class SysTypeManageMainPanel : DocumentPage
    {
@@ -7,10 +10,15 @@
            InitializeComponent();
            this.gridView1.SetNormalView();
            this.gridView1.RegistCustomDrawRowIndicator();
            this.PageTitle.Caption = "类型管理";
            this.PageTitle.HeaderSvgImage = this.svgImage32[0];
            this.PageTitle.SvgImageSize = new Size(24, 24);
            this.moduleTreeListCtrl1.FocusedChangedEvent += ModuleTreeListCtrl1_FocusedChangedEvent;
        }
        private List<SysTypeViewModel> _allBindingList = new List<SysTypeViewModel>();
        private int _LastRowIndex;
        private Yw.BLL.SysType _bll = null;
@@ -44,8 +52,11 @@
        {
            var dlg = new AddSysTypeDlg();
            var moduleid = this.moduleTreeListCtrl1.GetCurrentID();
            if (moduleid < 0)
            if (moduleid == 0)
            {
                MessageBoxHelper.ShowWarning("请选择数据行!");
                return;
            }
            dlg.SetBindingData(moduleid);
            dlg.ReloadDataEvent += async (rhs) =>
            {
@@ -57,8 +68,10 @@
                    this.typeViewModelBindingSource.ResetBindings(false);
                    return true;
                }
                return false;
            };
            dlg.ShowDialog();
        }
@@ -97,16 +110,82 @@
            }
            if (MessageBoxHelper.IsClickOk($"确认删除数据行?", "提示"))
                return;
            var result = await _bll.DeleteByID(currentVm.ID);
            if (result)
            try
            {
                _allBindingList.Remove(currentVm);
                this.typeViewModelBindingSource.ResetBindings(false);
                MessageBoxHelper.ShowSuccess($"删除成功!");
                var result = await _bll.DeleteByID(currentVm.ID);
                if (result)
                {
                    _allBindingList.Remove(currentVm);
                    this.typeViewModelBindingSource.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<DragDropBehavior>(gridView1, behavior =>
                {
                    behavior.BeginDragDrop += Behavior_BeginDragDrop;
                    behavior.DragDrop += Behavior_DragDrop;
                    behavior.EndDragDrop += Behavior_EndDragDrop;
                });
            }
            else
            {
                MessageBoxHelper.ShowError($"删除失败!");
                behaviorManager1.Detach<DragDropBehavior>(gridView1);
            }
        }
        private void Behavior_DragDrop(object sender, DragDropEventArgs e)
        {
            //behaviorManager1.Detach<DragDropBehavior>(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<Yw.Vmo.Sorter>();
            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.typeViewModelBindingSource.ResetBindings(false);
            }
            else
            {
                gridView1.FocusedRowHandle = _LastRowIndex;
                TipFormHelper.ShowError("修改排序失败!");
                return;
            }
        }