namespace HStation.WinFrmUI { public partial class CreateXhsSchemeInfoPage : DevExpress.XtraEditors.XtraUserControl, Yw.WinFrmUI.IWizardPageAsync { public CreateXhsSchemeInfoPage() { InitializeComponent(); this.layoutControl1.SetupLayoutControl(); this.xhsSchemeChangeTypeCheckedListHorizCtrl1.CheckedChangedEvent += XhsSchemeChangeTypeCheckedListHorizCtrl1_CheckedChangedEvent; } /// /// 页面状态改变事件 /// public event Action PageStateChangedEvent; private CreateXhsSchemeViewModel _vm = null;//操作对象 /// /// 初始化 /// public async void InitialPage(CreateXhsSchemeViewModel vm) { if (vm == null) { return; } _vm = vm; if (vm.Scheme == null) { vm.Scheme = new XhsSchemeVmo() { SiteID = vm.ProjectSite.ID }; vm.Scheme.Name = Yw.Untity.UniqueHelper.CreateFromFirst("方案", vm.AllSchemeList?.Select(x => x.Name).Distinct().ToList()); vm.Scheme.SortCode = vm.AllSchemeList == null || vm.AllSchemeList.Count < 1 ? 1 : vm.AllSchemeList.Max(x => x.SortCode) + 1; } this.txtName.EditValue = vm.Scheme.Name; this.txtNO.EditValue = vm.Scheme.NO; var allFlagList = await BLLFactory.Instance.GetBySysType(HStation.Xhs.DataType.XhsScheme); this.setFlagsEditCtrl1.SetBindingData(allFlagList?.Select(x => x.Name).ToList(), vm.Scheme.Flags); this.ckAllowCustom.Checked = vm.Scheme.AllowCustom; this.txtDescription.EditValue = vm.Scheme.Description; this.xhsSchemeChangeTypeCheckedListHorizCtrl1.SetBindingData(vm.HydroInfo, vm.Scheme.ChangeTypes); } //选择改变 private void XhsSchemeChangeTypeCheckedListHorizCtrl1_CheckedChangedEvent(List changeTypes) { this.PageStateChangedEvent?.Invoke(); } /// /// 允许上一步 /// public bool AllowPrev { get { return false; } } /// /// 允许下一步 /// public bool AllowNext { get { return true; } } /// /// 允许取消 /// public bool AllowCancel { get { return true; } } /// /// 允许完成 /// public bool AllowComplete { get { return false; } } /// /// 能否上一步 /// public Task CanPrev() { return Task.Run(() => false); } /// /// 能否下一步 /// public Task CanNext() { return Task.Run(() => Save()); } /// /// 能否关闭 /// public Task CanCancel() { return Task.Run(() => true); } /// /// 能否完成 /// public Task CanComplete() { return Task.Run(() => false); } //验证 private bool Valid() { this.dxErrorProvider1.ClearErrors(); var name = this.txtName.Text.Trim(); if (string.IsNullOrEmpty(name)) { this.dxErrorProvider1.SetError(this.txtName, "必填项"); return false; } return true; } //保存 private bool Save() { if (!Valid()) { return false; } _vm.Scheme.Name = this.txtName.Text.Trim(); _vm.Scheme.NO = this.txtNO.Text.Trim(); _vm.Scheme.Flags = this.setFlagsEditCtrl1.SelectedFlagList; _vm.Scheme.AllowCustom = this.ckAllowCustom.Checked; _vm.Scheme.ChangeTypes = this.xhsSchemeChangeTypeCheckedListHorizCtrl1.GetCheckedList(); _vm.Scheme.Description = this.txtDescription.Text.Trim(); InitialVisualViewModelList(); return true; } //初始化可见视图列表 private void InitialVisualViewModelList() { if (_vm == null) { return; } if (_vm.HydroInfo == null) { return; } if (_vm.AllVisualViewModelList != null) { return; } if (_vm.Scheme.ChangeTypes == null || _vm.Scheme.ChangeTypes.Count < 1) { return; } _vm.AllVisualViewModelList = new List(); var allVisualList = _vm.HydroInfo.GetAllVisuals(); foreach (var visual in allVisualList) { var vm = HydroVisualViewModelBuilder.CreateVisualViewModel(visual, _vm.HydroInfo); _vm.AllVisualViewModelList.Add(vm); } } } }