using Yw.Untity; namespace Yw.WinFrmUI { public partial class DivisionMainPage : DocumentPage { public DivisionMainPage() { InitializeComponent(); this.PageTitle.Caption = "行政区域"; this.treeList1.InitialMultiColSettings(); } private Yw.BLL.Division _bll = new Yw.BLL.Division(); private List _allBindingList = null; /// /// 初始化数据 /// public override void InitialDataSource() { SetBindingData(); } /// ///绑定数据 /// public async void SetBindingData() { _allBindingList = new List(); var list = await _bll.GetAll(); if (list != null && list.Count > 0) { foreach (var item in list) { var vm = new DivisionViewModel(item); _allBindingList.Add(vm); } } this.divisionViewModelBindingSource.DataSource = _allBindingList; this.treeList1.Refresh(); this.treeList1.ExpandAll(); } #region 事件 /// /// 添加 /// private void barBtnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var vm = this.treeList1.GetCurrentViewModel(_allBindingList); var dlg = new AddDivisonDlg(); dlg.SetBindingData(vm != null ? vm.ID : default); dlg.ReloadDataEvent += async (rhs, parentId) => { rhs.SortCode = _allBindingList.Count == 0 ? 1 : _allBindingList.Max(x => x.SortCode) + 1; if (parentId != null) { var select = await _bll.GetByID(Convert.ToInt64(parentId)); rhs.ParentIds = TreeParentIdsHelper.GetChildParentIds(select.ID, select.ParentIds); } rhs.ID = await _bll.Insert(rhs); if (rhs.ID > 0) { var vm = new DivisionViewModel(rhs); _allBindingList.Add(vm); this.divisionViewModelBindingSource.ResetBindings(false); return true; } return false; }; dlg.ShowDialog(); } /// /// 编辑 /// private async void barBtnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var vm = this.treeList1.GetCurrentViewModel(_allBindingList); if (vm == null) { MessageBoxHelper.ShowWarning("请选择数据行!"); return; } var dlg = new EditDivisionDlg(); var model = await _bll.GetByID(vm.ID); if (model == null) { MessageBoxHelper.ShowWarning("请选择数据行!"); return; } dlg.SetBindingData(model); dlg.ReloadDataEvent += async (rhs, parentId) => { if (parentId != null) { var select = await _bll.GetByID(Convert.ToInt64(parentId)); rhs.ParentIds = TreeParentIdsHelper.GetChildParentIds(select.ID, select.ParentIds); } var bol = await _bll.Update(rhs); if (bol) { vm.Reset(rhs); this.divisionViewModelBindingSource.ResetBindings(false); } return bol; }; dlg.ShowDialog(); } /// /// 删除 /// private async void barBtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var vm = this.treeList1.GetCurrentViewModel(_allBindingList); if (vm == null) { MessageBoxHelper.ShowWarning("请选择数据行!"); return; } if (MessageBoxHelper.IsClickOk($"确认删除数据行?")) return; var result = await _bll.DeleteByID(vm.ID); if (result) { MessageBoxHelper.ShowSuccess($"删除成功!"); } else { MessageBoxHelper.ShowError($"删除失败! "); return; } _allBindingList.Remove(vm); this.divisionViewModelBindingSource.ResetBindings(false); } /// /// 详情 /// private void barBtnDetail_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { MessageBoxHelper.ShowInfo("待补充"); } /// /// 检索 /// private void barCekSearch_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (this.treeList1.IsFindPanelVisible) this.treeList1.HideFindPanel(); else this.treeList1.ShowFindPanel(); } /// /// 刷新数据 /// private void barBtnRefresh_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { SetBindingData(); } #endregion 事件 } }