namespace Yw.WinFrmUI { public partial class SetHydroVisualMonitorCtrl : DevExpress.XtraEditors.XtraUserControl { public SetHydroVisualMonitorCtrl() { 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 _allBindingList = null;//所有绑定列表 /// /// 绑定数据 /// public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroVisualInfo visualInfo, List allMonitorList) { _hydroInfo = hydroInfo; _visualInfo = visualInfo; _allBindingList = new BindingList(); if (hydroInfo != null) { if (visualInfo != null) { var propList = HydroCalcuPropHelper.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 SetHydroVisualMonitorViewModel(vmo, visualInfo); _allBindingList.Add(vm); } } } } this.setHydroVisualMonitorViewModelBindingSource.DataSource = _allBindingList; this.setHydroVisualMonitorViewModelBindingSource.ResetBindings(false); } /// /// 获取监测列表 /// public List GetMonitorList() { var list = _allBindingList?.Where(x => x.Checked).ToList(); list?.ForEach(x => x.Vmo.Description = x.Description); return list?.Select(x => x.Vmo).ToList(); } } }