using DevExpress.XtraEditors; namespace HStation.WinFrmUI.Basic { /// /// /// public partial class SysModuleTreeListCtrl : XtraUserControl { public SysModuleTreeListCtrl() { InitializeComponent(); this.treeList1.InitialDefaultSettings(); } /// /// 聚焦改变事件 /// public event Action FocusedChangedEvent; private List _allBindingList = null; private Yw.BLL.SysModule _bll = null; /// /// 绑定数据 /// public void Clear() { this.FocusedChangedEvent?.Invoke(default); } /// /// 绑定数据 /// public async void SetBindingData() { _allBindingList = new List(); _bll = new Yw.BLL.SysModule(); var alllist = await _bll.GetAll(); foreach (var item in alllist) { _allBindingList.Add(new SysModuleViewModel(item)); } this.moduleViewModelBindingSource.DataSource = _allBindingList; this.moduleViewModelBindingSource.ResetBindings(false); } //聚焦改变 private void treeList1_FocusedNodeChanged(object sender, DevExpress.XtraTreeList.FocusedNodeChangedEventArgs e) { var currentVm = this.treeList1.GetCurrentViewModel(_allBindingList); if (currentVm == null) { MessageBoxHelper.ShowWarning("请选择数据行!"); return; } FocusedChangedEvent.Invoke(currentVm.ID); } #region 菜单事件 //检索 private void barCkSearch_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (this.barCkSearch.Checked) this.treeList1.ShowFindPanel(); else this.treeList1.HideFindPanel(); } #endregion 菜单事件 //获取当前选中id public long GetCurrentID() { var currentVm = this.treeList1.GetCurrentViewModel(_allBindingList); if (currentVm == null) { MessageBoxHelper.ShowWarning("请选择数据行!"); return default; } return currentVm.ID; } //添加 private void barBtnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var dlg = new AddSysMoudleDlg(); dlg.ReloadDataEvent += async (rhs) => { var id = await _bll.Insert(rhs); if (id > 0) { var model = await _bll.GetByID(id); _allBindingList.Add(new SysModuleViewModel(model)); this.moduleViewModelBindingSource.ResetBindings(false); return true; } return false; }; dlg.ShowDialog(); } //全部折叠 private void barBtnCollapseAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { this.treeList1.CollapseAll(); } //全部展开 private void barBtnExpandAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { this.treeList1.ExpandAll(); } //编辑 private void barBtnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var vm = this.treeList1.GetCurrentViewModel(_allBindingList); var dlg = new EditSysMoudleDlg(); dlg.SetBindingData(vm.ID); dlg.ReloadDataEvent += async (rhs) => { if (await _bll.Update(rhs)) { vm.Reset(rhs); this.moduleViewModelBindingSource.ResetBindings(false); return true; } return false; }; dlg.ShowDialog(); } //删除 private async void barBtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var currentVm = this.treeList1.GetCurrentViewModel(_allBindingList); if (currentVm == null) { MessageBoxHelper.ShowWarning("请选择数据行!"); return; } if (MessageBoxHelper.IsClickOk("确认删除数据行?", "提示")) return; if (await _bll.IsExistByModuleID(currentVm.ID)) { MessageBoxHelper.ShowWarning("存在系统类型,不可删除!"); return; } var result = await _bll.DeleteByID(currentVm.ID); if (result) { _allBindingList.Remove(currentVm); MessageBoxHelper.ShowSuccess("删除成功!"); this.moduleViewModelBindingSource.ResetBindings(false); return; } else { MessageBoxHelper.ShowError($"删除失败!"); return; } } } }