lixiaojun
2024-11-14 ae45d123c2ee907fd40f7db86f2aac2b21f976b6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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<SetHydroVisualMonitorViewModel> _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<SetHydroVisualMonitorViewModel>();
            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);
        }
 
        /// <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();
        }
 
 
    }
}