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;
}
}
}
}