using DevExpress.XtraEditors; namespace HStation.WinFrmUI.Basic { /// /// /// public partial class SysPropGroupTreeListCtrl : XtraUserControl { public SysPropGroupTreeListCtrl() { InitializeComponent(); this.treeList1.InitialDefaultSettings(); this.typeTreeListLookUpEdit1.SelectedChangedEvent += TypeTreeListLookUpEdit1_SelectedChangedEvent; } /// /// 聚焦改变事件 /// public event Action FocusedChangedEvent; private List _allBindingList = null; private Yw.BLL.SysPropGroup _bll = null; //选择变换事件 private async void TypeTreeListLookUpEdit1_SelectedChangedEvent(long ID) { _bll = new Yw.BLL.SysPropGroup(); _allBindingList = new List(); var alllist = await _bll.GetByTypeID(ID); foreach (var item in alllist) { _allBindingList.Add(new SysPropGroupTreeListViewModel(item)); } this.propGroupTreeListViewModelBindingSource.DataSource = _allBindingList; this.propGroupTreeListViewModelBindingSource.ResetBindings(false); } /// /// 绑定数据 /// public void Clear() { this.FocusedChangedEvent?.Invoke(default); } /// /// 绑定数据 /// public async void SetBindingData() { this.typeTreeListLookUpEdit1.SetBindingData(); } //聚焦改变 private void treeList1_FocusedNodeChanged(object sender, DevExpress.XtraTreeList.FocusedNodeChangedEventArgs e) { var currentVm = this.treeList1.GetCurrentViewModel(_allBindingList); if (currentVm != null) { 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 (组id) public long GetCurrentGroupID() { var currentVm = this.treeList1.GetCurrentViewModel(_allBindingList); if (currentVm == null) { MessageBoxHelper.ShowWarning("请选择数据行!"); return default; } return currentVm.ID; } //获取当前选中id (类型id) public long GetCurrentTypeID() { var currentVm = this.typeTreeListLookUpEdit1.GetCurrentTypeID(); return currentVm; } //添加 private void barBtnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var dlg = new AddSysPropGrouoDlg(); var vmID = this.typeTreeListLookUpEdit1.GetCurrentTypeID(); dlg.SetBindingData(vmID); dlg.ReloadDataEvent += async (rhs) => { var id = await _bll.Insert(rhs); if (id > 0) { var model = await _bll.GetByID(id); _allBindingList.Add(new SysPropGroupTreeListViewModel(model)); this.propGroupTreeListViewModelBindingSource.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); if (vm == null) { MessageBoxHelper.ShowWarning("请选择数据行!"); return; } var dlg = new EditSysPropGrouoDlg(); dlg.SetBindingData(vm.ID); dlg.ReloadDataEvent += async (rhs) => { if (await _bll.Update(rhs)) { vm.Reset(rhs); this.propGroupTreeListViewModelBindingSource.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; var result = await _bll.DeleteByID(currentVm.ID); if (result) { _allBindingList.Remove(currentVm); this.propGroupTreeListViewModelBindingSource.ResetBindings(false); MessageBoxHelper.ShowSuccess("删除成功!"); return; } else { MessageBoxHelper.ShowError($"删除失败!"); return; } } } }