using DevExpress.XtraEditors; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; namespace Yw.WinFrmUI { public partial class BuildingTypeMgr : DocumentPage { public BuildingTypeMgr() { InitializeComponent(); this.PageTitle.Caption = "建筑类型"; this.gridView1.SetNormalView(); this.gridView1.RegistCustomDrawRowIndicator(); } private BLL.BuildingType _bll = new BLL.BuildingType(); private List _allBindingList = null; /// /// 初始化数据 /// public override void InitialDataSource() { SetBindingData(); } /// ///绑定数据 /// public async void SetBindingData() { _allBindingList = new List(); var list = await _bll.GetAll(); if (list != null && list.Count > 0) { foreach (var item in list) { var vm = new BuildingTypeViewModel(item); _allBindingList.Add(vm); } } this.buildingTypeViewModelBindingSource.DataSource = _allBindingList; this.gridView1.BestFitColumns(); } #region 事件 /// /// 添加 /// private void barBtnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (_allBindingList == null) return; var dlg = new AddBuildingTypeDlg(); dlg.SetBindingData(); dlg.ReloadDataEvent += async (rhs) => { rhs.SortCode = _allBindingList.Count == 0 ? 1 : _allBindingList.Max(x => x.SortCode) + 1; rhs.ID = await _bll.Insert(rhs); if (rhs.ID > 0) { var vm = new BuildingTypeViewModel(rhs); _allBindingList.Add(vm); this.buildingTypeViewModelBindingSource.ResetBindings(false); return true; } return false; }; dlg.ShowDialog(); } /// /// 编辑 /// private async void barBtnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var vm = this.gridView1.GetCurrentViewModel(_allBindingList); if (vm == null) { MessageBoxHelper.ShowWarning("请选择数据行!"); return; } var dlg = new EditBuildingTypeDlg(); var model = await _bll.GetByID(vm.ID); if (model == null) return; dlg.SetBindingData(model); dlg.ReloadDataEvent += async (rhs) => { var bol = await _bll.Update(rhs); if (bol) { vm.Reset(rhs); this.gridView1.RefreshRow(this.gridView1.FocusedRowHandle); } return bol; }; dlg.ShowDialog(); } /// /// 删除 /// private async void barBtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var vm = this.gridView1.GetCurrentViewModel(_allBindingList); if (vm == null) return; if (MessageBoxHelper.IsClickOk($"确认删除数据行?", "提示", MessageBoxButtons.OKCancel)) return; var result = await new BLL.BuildingType().DeleteByID(vm.ID); if (!result) { MessageBoxHelper.ShowError($"删除失败!"); return; } else { _allBindingList.Remove(vm); } this.buildingTypeViewModelBindingSource.ResetBindings(false); } /// /// 详情 /// private void barBtnDetail_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { MessageBoxHelper.ShowInfo("待补充"); } /// /// 标签名称 /// private void barBtnUpdateTagName_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { /* var vm = this.gridView1.GetBuildingTypeViewModel(_allBindingList); if (vm == null) { MessageBoxHelper.ShowWarning("请选择数据行!"); return; } var dlg = new SetTagNameDlg(); dlg.SetBindingData(vm.TagName); dlg.ReloadDataEvent += (tagName) => { var result = _bll.UpdateTagName(vm.ID, tagName, Settings.User.LoginUserID); if (result) { vm.TagName = tagName; this.gridView1.RefreshRow(this.gridView1.FocusedRowHandle); } return result; }; dlg.ShowDialog();*/ } /// /// 使用状态 /// private void barBtnUpdateUseStatus_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { /* var vm = this.gridView1.GetBuildingTypeViewModel(_allBindingList); if (vm == null) { MessageBoxHelper.ShowWarning("请选择数据行!"); return; } var dlg = new SetUseStatusDlg(); dlg.SetBindingData(vm.UseStatus); dlg.ReloadDataEvent += (useStatus) => { var result = _bll.UpdateUseStatus(vm.ID, (int)useStatus, Settings.User.LoginUserID); if (result) { vm.UseStatus = useStatus; this.gridView1.RefreshRow(this.gridView1.FocusedRowHandle); } return result; }; dlg.ShowDialog();*/ } /// /// 检索 /// private void barCekSearch_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (this.gridView1.IsFindPanelVisible) this.gridView1.HideFindPanel(); else this.gridView1.ShowFindPanel(); } /// /// 刷新数据 /// private void barBtnRefresh_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { SetBindingData(); } #endregion 事件 } }