3
lixiaojun
2024-09-23 79364d2965451332f31e801556f9e5e91aeaa81a
WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/04-scheme/XhsProjectSimulationSchemeMgrCtrl.cs
@@ -1,4 +1,6 @@
namespace HStation.WinFrmUI
using HStation.Vmo;
namespace HStation.WinFrmUI
{
    public partial class XhsProjectSimulationSchemeMgrCtrl : DevExpress.XtraEditors.XtraUserControl
    {
@@ -9,8 +11,14 @@
            this.listBoxControl1.InitialDefaultSettings(30);
        }
        /// <summary>
        /// 项目站选择改变事件
        /// </summary>
        public event Action<XhsProjectSiteVmo> ProjectSiteSelectedChangedEvent;
        private long _projectId;//项目id
        private List<HStation.Vmo.XhsProjectSiteVmo> _allProjectSiteList = null;//所有项目站列表
        private XhsProjectVmo _project = null;//项目
        private List<XhsProjectSiteVmo> _allProjectSiteList = null;//所有项目站列表
        private List<HStation.Vmo.XhsSchemeVmo> _allSchemeList = null;//所有方案列表
@@ -19,8 +27,38 @@
        /// </summary>
        public async Task SetBindingData(long projectId)
        {
            _allProjectSiteList = await BLLFactory<HStation.BLL.XhsProjectSite>.Instance.GetByProjectID(projectId);
            _projectId = projectId;
            _project = await BLLFactory<HStation.BLL.XhsProject>.Instance.GetByID(projectId);
            await SetBindingData(_project);
        }
        /// <summary>
        /// 绑定数据
        /// </summary>
        public async Task SetBindingData(XhsProjectVmo project)
        {
            if (project == null)
            {
                return;
            }
            _project = project;
            _projectId = project.ID;
            _allProjectSiteList = await BLLFactory<HStation.BLL.XhsProjectSite>.Instance.GetByProjectID(_projectId);
            InitialProjectSiteList();
        }
        /// <summary>
        /// 添加方案
        /// </summary>
        public void AppendScheme(XhsSchemeVmo scheme)
        {
            if (_allSchemeList == null)
            {
                _allSchemeList = new List<XhsSchemeVmo>();
            }
            _allSchemeList.Add(scheme);
            this.xhsProjectSimulationSchemeMgrViewModelBindingSource.DataSource = _allSchemeList;
            this.xhsProjectSimulationSchemeMgrViewModelBindingSource.ResetBindings(false);
        }
        //初始化项目站列表
@@ -39,7 +77,12 @@
                }
            }
            this.imgCmbProjectSiteList.Properties.EndUpdate();
            this.imgCmbProjectSiteList.SelectedIndex = 0;
            if (_allProjectSiteList != null && _allProjectSiteList.Count > 0)
            {
                this.imgCmbProjectSiteList.SelectedIndex = 0;
            }
            if (_allProjectSiteList != null && _allProjectSiteList.Count > 1)
            {
                this.itemForProjectSiteList.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
@@ -50,22 +93,26 @@
            }
        }
        //项目站选择索引改变
        private void imgCmbProjectSiteList_SelectedIndexChanged(object sender, EventArgs e)
        //初始化项目方案
        private async Task InitalSchemeList(XhsProjectSiteVmo projectSite)
        {
            var item = this.imgCmbProjectSiteList.SelectedItem as XhsProjectStdDto;
            if (item == null)
            _allSchemeList = null;
            if (projectSite != null)
            {
                return;
                _allSchemeList = await BLLFactory<HStation.BLL.XhsScheme>.Instance.GetBySiteID(projectSite.ID);
            }
            this.xhsProjectSimulationSchemeMgrViewModelBindingSource.DataSource = _allSchemeList;
            this.xhsProjectSimulationSchemeMgrViewModelBindingSource.ResetBindings(false);
        }
        //项目站选择值改变
        private void imgCmbProjectSiteList_SelectedValueChanged(object sender, EventArgs e)
        //项目站选择索引改变
        private async void imgCmbProjectSiteList_SelectedIndexChanged(object sender, EventArgs e)
        {
            var vmo = this.imgCmbProjectSiteList.EditValue as XhsProjectSiteVmo;
            await InitalSchemeList(vmo);
            this.ProjectSiteSelectedChangedEvent?.Invoke(vmo);
        }
    }
}