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);
}
}
}