using DevExpress.XtraEditors;
namespace Yw.WinFrmUI
{
public partial class HydroWorkingMgrDlg : DevExpress.XtraBars.Ribbon.RibbonForm
{
public HydroWorkingMgrDlg()
{
InitializeComponent();
this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
this.layoutControl1.SetupLayoutControl();
this.gridView1.SetNormalEditView();
this.generalOkAndCancelCtrl1.OkEvent += GeneralOkAndCancelCtrl1_OkEvent;
this.repositoryItemButtonEdit1.ButtonClick += RepositoryItemButtonEdit1_ButtonClick;
}
///
/// 重载数据事件
///
public event Action> ReloadDataEvent;
///
/// 更新数据事件
///
public event Action UpdateDataEvent;
///
/// 应用数据事件
///
public event Action ApplyDataEvent;
///
/// 删除数据事件
///
public event Action DeleteDataEvent;
private BindingList _allBindingList = null;//所有绑定列表
///
/// 绑定列表
///
public void SetBindingData(Dictionary dict)
{
_allBindingList = new BindingList();
if (dict != null && dict.Count > 0)
{
foreach (var item in dict)
{
var vm = new HydroWorkingMgrViewModel(item.Key, item.Value);
_allBindingList.Add(vm);
}
}
this.hydroWorkingMgrViewModelBindingSource.DataSource = _allBindingList;
this.hydroWorkingMgrViewModelBindingSource.ResetBindings(false);
}
//获取当前视图
private HydroWorkingMgrViewModel GetCurrentViewModel()
{
if (_allBindingList == null)
{
TipFormHelper.ShowError("数据初始化失败!");
return null;
}
if (_allBindingList.Count < 1)
{
TipFormHelper.ShowInfo("无数据!");
return null;
}
var vm = this.gridView1.GetCurrentViewModel(_allBindingList);
if (vm == null)
{
TipFormHelper.ShowWarn("请选择数据行!");
return null;
}
return vm;
}
//编辑
private void Edit()
{
var vm = GetCurrentViewModel();
if (vm == null)
{
return;
}
var dlg = new EditHydroWorkingDlg();
dlg.ReloadDataEvent += (rhs) =>
{
vm.Reset(rhs);
this.UpdateDataEvent?.Invoke(vm.Vmo);
this.gridView1.RefreshRow(this.gridView1.FocusedRowHandle);
TipFormHelper.ShowSucceed("更新成功");
};
dlg.SetBindingData(vm.Vmo);
dlg.ShowDialog();
}
//应用
private void Apply()
{
var vm = GetCurrentViewModel();
if (vm == null)
{
return;
}
this.ApplyDataEvent?.Invoke(vm.Vmo);
TipFormHelper.ShowSucceed("应用成功");
}
//删除
private async void Delete()
{
var vm = GetCurrentViewModel();
if (vm == null)
{
return;
}
var result = XtraMessageBox.Show("请问确认删除当前数据吗?", "询问", MessageBoxButtons.YesNo) == DialogResult.Yes;
if (!result)
{
return;
}
var bol = await BLLFactory.Instance.DeleteByID(vm.ID);
if (!bol)
{
TipFormHelper.ShowError("删除失败!");
return;
}
_allBindingList.Remove(vm);
this.DeleteDataEvent?.Invoke(vm.Vmo);
this.hydroWorkingMgrViewModelBindingSource.ResetBindings(false);
TipFormHelper.ShowSucceed("删除成功!");
}
//确定
private void GeneralOkAndCancelCtrl1_OkEvent()
{
if (_allBindingList == null)
{
TipFormHelper.ShowError("数据初始化失败!");
return;
}
var dict = new Dictionary();
foreach (var item in _allBindingList)
{
dict.Add(item.Vmo, item.HasChecked);
}
this.ReloadDataEvent?.Invoke(dict);
this.DialogResult = DialogResult.OK;
this.Close();
}
//操作点击
private void RepositoryItemButtonEdit1_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
{
var tag = e.Button.Tag?.ToString();
switch (tag)
{
case "edit": Edit(); break;
case "apply": Apply(); break;
case "delete": Delete(); break;
default: break;
}
}
}
}