namespace HStation.WinFrmUI { public partial class XhsProjectSimulationSchemeMgrCtrl : DevExpress.XtraEditors.XtraUserControl { public XhsProjectSimulationSchemeMgrCtrl() { InitializeComponent(); this.layoutControl1.SetupLayoutControl(); this.listBoxControl1.InitialDefaultSettings(30); } /// /// 项目站选择改变事件 /// public event Action ProjectSiteSelectedChangedEvent; private long _projectId;//项目id private XhsProjectVmo _project = null;//项目 private List _allProjectSiteList = null;//所有项目站列表 private List _allSchemeList = null;//所有方案列表 /// /// 绑定数据 /// public async Task SetBindingData(long projectId) { _projectId = projectId; _project = await BLLFactory.Instance.GetByID(projectId); await SetBindingData(_project); } /// /// 绑定数据 /// public async Task SetBindingData(XhsProjectVmo project) { if (project == null) { return; } _project = project; _projectId = project.ID; _allProjectSiteList = await BLLFactory.Instance.GetByProjectID(_projectId); InitialProjectSiteList(); } /// /// 添加方案 /// public void AppendScheme(XhsSchemeVmo scheme) { if (_allSchemeList == null) { _allSchemeList = new List(); } _allSchemeList.Add(scheme); this.xhsProjectSimulationSchemeMgrViewModelBindingSource.DataSource = _allSchemeList; this.xhsProjectSimulationSchemeMgrViewModelBindingSource.ResetBindings(false); } //初始化项目站列表 private void InitialProjectSiteList() { this.imgCmbProjectSiteList.Properties.BeginUpdate(); this.imgCmbProjectSiteList.Properties.Items.Clear(); if (_allProjectSiteList != null && _allProjectSiteList.Count > 0) { foreach (var projectSite in _allProjectSiteList) { var imgItem = new ImageComboBoxItem(); imgItem.Value = projectSite; imgItem.Description = projectSite.Name; this.imgCmbProjectSiteList.Properties.Items.Add(imgItem); } } this.imgCmbProjectSiteList.Properties.EndUpdate(); if (_allProjectSiteList != null && _allProjectSiteList.Count > 0) { this.imgCmbProjectSiteList.SelectedIndex = 0; } if (_allProjectSiteList != null && _allProjectSiteList.Count > 1) { this.itemForProjectSiteList.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always; } else { this.itemForProjectSiteList.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; } } //初始化项目方案 private async Task InitalSchemeList(XhsProjectSiteVmo projectSite) { _allSchemeList = null; if (projectSite != null) { _allSchemeList = await BLLFactory.Instance.GetBySiteID(projectSite.ID); } this.xhsProjectSimulationSchemeMgrViewModelBindingSource.DataSource = _allSchemeList; this.xhsProjectSimulationSchemeMgrViewModelBindingSource.ResetBindings(false); } //项目站选择索引改变 private async void imgCmbProjectSiteList_SelectedIndexChanged(object sender, EventArgs e) { var vmo = this.imgCmbProjectSiteList.EditValue as XhsProjectSiteVmo; await InitalSchemeList(vmo); this.ProjectSiteSelectedChangedEvent?.Invoke(vmo); } } }