using DevExpress.XtraEditors;
using Yw;
namespace HStation.WinFrmUI.Basic
{
///
///
///
public partial class SysModuleListBoxCtrl : XtraUserControl
{
public SysModuleListBoxCtrl()
{
InitializeComponent();
this.listBoxControl1.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.listBoxControl1.DataSource = _allBindingList;
this.listBoxControl1.DisplayMember = "Name";
}
//聚焦改变
private void listBoxControl1_SelectedIndexChanged(object sender, EventArgs e)
{
var currentID = this.GetCurrentID();
if (currentID <= 0)
{
return;
}
FocusedChangedEvent.Invoke(currentID);
}
#region 菜单事件
//检索
private void barCkSearch_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
if (this.barCkSearch.Checked)
layoutControlItemSearch.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
else
layoutControlItemSearch.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
}
#endregion 菜单事件
//获取当前选中id
public long GetCurrentID()
{
var currentVm = this.listBoxControl1.GetCurrentViewModel(_allBindingList);
if (currentVm == null)
{
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 barBtnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
var vm = this.listBoxControl1.GetCurrentViewModel(_allBindingList);
var dlg = new EditSysMoudleDlg();
if (vm == null)
{
MessageBoxHelper.ShowError("请选择数据换!");
return;
}
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.listBoxControl1.GetCurrentViewModel(_allBindingList);
if (currentVm == null)
{
MessageBoxHelper.ShowWarning("请选择数据行!");
return;
}
if (MessageBoxHelper.IsClickOk("确认删除数据行?", "提示"))
return;
var result = await BLLFactory.Instance.DeleteByID(currentVm.ID);
if (result)
{
_allBindingList.Remove(currentVm);
MessageBoxHelper.ShowSuccess("删除成功!");
this.moduleViewModelBindingSource.ResetBindings(false);
return;
}
else
{
MessageBoxHelper.ShowError($"删除失败!");
return;
}
}
private void barBtnRefresh_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
this.SetBindingData();
}
}
}