namespace Yw.WinFrmUI
|
{
|
public partial class SetHydroMonitorListCtrl : DevExpress.XtraEditors.XtraUserControl
|
{
|
public SetHydroMonitorListCtrl()
|
{
|
InitializeComponent();
|
this.gridView1.SetNormalEditView(30);
|
this.colRelation.OptionsColumn.AllowEdit = false;
|
this.colPropName.OptionsColumn.AllowEdit = false;
|
}
|
|
private Yw.Model.HydroModelInfo _hydroInfo = null;//水力信息
|
private Yw.Model.HydroVisualInfo _visualInfo = null;//构件信息
|
private BindingList<SetHydroMonitorViewModel> _allBindingList = null;//所有绑定列表
|
|
/// <summary>
|
/// 绑定数据
|
/// </summary>
|
public void SetBindingData
|
(
|
Yw.Model.HydroModelInfo hydroInfo,
|
Yw.Model.HydroVisualInfo visualInfo,
|
List<HydroMonitorVmo> allMonitorList
|
)
|
{
|
_hydroInfo = hydroInfo;
|
_visualInfo = visualInfo;
|
_allBindingList = new BindingList<SetHydroMonitorViewModel>();
|
if (hydroInfo != null)
|
{
|
if (visualInfo != null)
|
{
|
var propList = HydroVisualCalcuPropHelper.GetNameDict(visualInfo.Catalog);
|
if (propList != null && propList.Count > 0)
|
{
|
foreach (var prop in propList)
|
{
|
var maxSortCode = allMonitorList == null || allMonitorList.Count < 1 ? 0 : allMonitorList.Max(x => x.SortCode);
|
var vmo = allMonitorList?.Find(x => x.ModelID == hydroInfo.ID && x.Relation == visualInfo.Code);
|
if (vmo == null)
|
{
|
maxSortCode++;
|
vmo = new HydroMonitorVmo()
|
{
|
ID = 0,
|
ModelID = hydroInfo.ID,
|
Relation = visualInfo.Code,
|
PropName = prop.Key,
|
SortCode = maxSortCode,
|
Description = string.Empty
|
};
|
}
|
var vm = new SetHydroMonitorViewModel(vmo, visualInfo);
|
_allBindingList.Add(vm);
|
}
|
}
|
}
|
}
|
this.setHydroMonitorViewModelBindingSource.DataSource = _allBindingList;
|
this.setHydroMonitorViewModelBindingSource.ResetBindings(false);
|
}
|
|
/// <summary>
|
/// 获取监测列表
|
/// </summary>
|
public List<HydroMonitorVmo> GetMonitorList()
|
{
|
var list = _allBindingList?.Where(x => x.Checked).ToList();
|
list?.ForEach(x => x.Vmo.Description = x.Description);
|
return list?.Select(x => x.Vmo).ToList();
|
}
|
|
|
}
|
}
|