lixiaojun
2024-12-02 f54adb8f368def21b9aa01e466b09bed6cd8347c
修改并联模拟窗体
已修改7个文件
345 ■■■■ 文件已修改
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs 79 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/01-parallel/SimulationPumpParallelCtrl.Designer.cs 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/01-parallel/SimulationPumpParallelCtrl.cs 159 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/01-parallel/SimulationPumpParallelDlg.Designer.cs 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/01-parallel/SimulationPumpParallelDlg.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/19-pump/02-extend/HydroPumpListExtendGridCtrl.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/19-pump/02-extend/HydroPumpListItemExtendViewModel.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
@@ -2042,70 +2042,35 @@
                XtraMessageBox.Show("无水泵信息");
                return;
            }
            var vmList = new List<XhsSinglePumpViewModel>();
            foreach (var pump in pumps)
            var dlg = new SimulationPumpParallelDlg();
            dlg.SaveEvent += async (list) =>
            {
                if (!pump.RatedN.HasValue)
                list?.ForEach(x =>
                {
                    continue;
                }
                var qh = _hydroInfo.Curves?.Find(t => t.Code == pump.CurveQH)?.CurveData;
                var qe = _hydroInfo.Curves?.Find(t => t.Code == pump.CurveQE)?.CurveData;
                var qp = _hydroInfo.Curves?.Find(t => t.Code == pump.CurveQP)?.CurveData;
                if (qh == null)
                {
                    continue;
                }
                var qhPtList = qh.Select(x => new XhsSplinePointViewModel(x.X, x.Y)).ToList();
                var qePtList = qe?.Select(x => new XhsSplinePointViewModel(x.X, x.Y)).ToList();
                var qpPtList = qp?.Select(x => new XhsSplinePointViewModel(x.X, x.Y)).ToList();
                var vm = new XhsSinglePumpViewModel();
                vmList.Add(vm);
                vm.ID = pump.ID;
                vm.Name = pump.Name;
                vm.Code = pump.Code;
                vm.IsBp = true;
                vm.RunStatus = pump.LinkStatus == Yw.Hydro.LinkStatus.Open;
                vm.RatedHz = pump.RatedHz;
                vm.CurrentHz = Math.Round(pump.RatedHz * pump.SpeedRatio, 1);
                vm.RatedSpeed = pump.RatedN.Value;
                vm.CurrentSpeed = Math.Round(pump.RatedN.Value * pump.SpeedRatio, 1);
                vm.CurveQH = qhPtList;
                vm.CurveQE = qePtList;
                vm.CurveQP = qpPtList;
            }
            //var dlg = new PumpParallelAnalyDlg();
            //dlg.SetBindingData(vmList);
            //dlg.ReloadDataEvent += (list) =>
            //{
            //    list?.ForEach(x =>
            //    {
            //        var pump = pumps.Find(t => t.Code == x.Code);
            //        if (pump != null)
            //        {
            //            pump.LinkStatus = x.RunStatus ? Yw.Hydro.PumpStatus.Open : Yw.Hydro.PumpStatus.Closed;
            //            pump.SpeedRatio = x.CurrentHz / pump.RatedHz;
            //        }
            //    });
            //    var codes = list?.Select(x => x.Code).ToList();
            //    //UpdateVisualViewModelProperty(codes);
            //    //ShowSelectedProperty();
            //    UpdateVisualListCtrl();
            //    return true;
            //};
            //dlg.ShowDialog();
                    var pump = pumps.Find(t => t.Code == x.Code);
                    if (pump != null)
                    {
                        pump.LinkStatus = x.LinkStatus;
                        pump.SpeedRatio = x.SpeedRatio;
                    }
                });
                var visualVmListHelper = GetVisualVmListHelper();
                visualVmListHelper.UpdateProperty(pumps.Select(x => x as Yw.Model.HydroVisualInfo).ToList());
                SelectVisual(_visual, eVisualSource.None);
                var calcuResultLabelHelper = await GetCalcuResultLabelHelper();
                calcuResultLabelHelper.Set();
            };
            dlg.SetBindingData(_hydroInfo);
            dlg.ShowDialog();
        }
        //并联模拟
        private void barBtnPumpParallel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            var dlg = new SimulationPumpParallelDlg();
            dlg.ShowDialog();
            // PumpParallel();
            PumpParallel();
        }
        #endregion
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/01-parallel/SimulationPumpParallelCtrl.Designer.cs
@@ -29,7 +29,6 @@
        private void InitializeComponent()
        {
            ComponentResourceManager resources = new ComponentResourceManager(typeof(SimulationPumpParallelCtrl));
            pictureEdit1 = new PictureEdit();
            sidePanel1 = new SidePanel();
            layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
            hydroPumpQueryPointListGridCtrl1 = new HydroPumpQueryPointListGridCtrl();
@@ -52,7 +51,7 @@
            layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
            layoutControlGroup5 = new DevExpress.XtraLayout.LayoutControlGroup();
            layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
            ((ISupportInitialize)pictureEdit1.Properties).BeginInit();
            pumpParallelChart1 = new Yw.WinFrmUI.Phart.PumpParallelChart();
            sidePanel1.SuspendLayout();
            ((ISupportInitialize)layoutControl1).BeginInit();
            layoutControl1.SuspendLayout();
@@ -72,15 +71,6 @@
            ((ISupportInitialize)layoutControlGroup5).BeginInit();
            ((ISupportInitialize)layoutControlItem7).BeginInit();
            SuspendLayout();
            //
            // pictureEdit1
            //
            pictureEdit1.Dock = DockStyle.Fill;
            pictureEdit1.Location = new Point(0, 0);
            pictureEdit1.Name = "pictureEdit1";
            pictureEdit1.Properties.ShowCameraMenuItem = CameraMenuItemVisibility.Auto;
            pictureEdit1.Size = new Size(640, 663);
            pictureEdit1.TabIndex = 0;
            // 
            // sidePanel1
            // 
@@ -161,6 +151,7 @@
            btnDesign.StyleController = layoutControl1;
            btnDesign.TabIndex = 3;
            btnDesign.Text = "设置";
            btnDesign.Click += btnDesign_Click;
            // 
            // txtDesignH
            // 
@@ -325,15 +316,25 @@
            layoutControlItem7.TextSize = new Size(0, 0);
            layoutControlItem7.TextVisible = false;
            // 
            // pumpParallelChart1
            //
            pumpParallelChart1.Dock = DockStyle.Fill;
            pumpParallelChart1.LineNameVisible = true;
            pumpParallelChart1.LineVisible = false;
            pumpParallelChart1.Location = new Point(0, 0);
            pumpParallelChart1.Margin = new Padding(2, 2, 2, 2);
            pumpParallelChart1.Name = "pumpParallelChart1";
            pumpParallelChart1.Size = new Size(640, 663);
            pumpParallelChart1.TabIndex = 2;
            //
            // SimulationPumpParallelCtrl
            // 
            AutoScaleDimensions = new SizeF(7F, 14F);
            AutoScaleMode = AutoScaleMode.Font;
            Controls.Add(pictureEdit1);
            Controls.Add(pumpParallelChart1);
            Controls.Add(sidePanel1);
            Name = "SimulationPumpParallelCtrl";
            Size = new Size(1105, 663);
            ((ISupportInitialize)pictureEdit1.Properties).EndInit();
            sidePanel1.ResumeLayout(false);
            ((ISupportInitialize)layoutControl1).EndInit();
            layoutControl1.ResumeLayout(false);
@@ -356,8 +357,6 @@
        }
        #endregion
        private PictureEdit pictureEdit1;
        private SidePanel sidePanel1;
        private DevExpress.XtraLayout.LayoutControl layoutControl1;
        private SimpleButton btnDesign;
@@ -380,5 +379,6 @@
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
        private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup5;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
        private Yw.WinFrmUI.Phart.PumpParallelChart pumpParallelChart1;
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/01-parallel/SimulationPumpParallelCtrl.cs
@@ -9,6 +9,9 @@
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Yw.Geometry;
using Yw.Pump;
using Yw.WinFrmUI.Phart;
namespace HStation.WinFrmUI
{
@@ -19,12 +22,21 @@
            InitializeComponent();
            this.layoutControl1.SetupLayoutControl();
            this.hydroPumpListExtendGridCtrl1.StateChangedEvent += HydroPumpListExtendGridCtrl1_StateChangedEvent;
            this.pumpParallelChart1.DesignPointChangedEvent += PumpParallelChart1_DesignPointChangedEvent;
            this.pumpParallelChart1.QueryPointChangedEvent += PumpParallelChart1_QueryPointChangedEvent;
            this.pumpParallelChart1.ParallelStatusChangedEvent += PumpParallelChart1_ParallelStatusChangedEvent;
        }
        /// <summary>
        /// 保存事件
        /// </summary>
        public event Action<List<SimulationPumpParallelSaveItemViewModel>> SaveEvent;
        /// <summary>
        /// 并联状态改变事件
        /// </summary>
        public event Action<bool, string> ParallelStatusChangedEvent;
        /// <summary>
        /// 绑定列表
@@ -32,12 +44,16 @@
        public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo)
        {
            this.hydroPumpListExtendGridCtrl1.SetBindingData(hydroInfo);
            var allStateList = this.hydroPumpListExtendGridCtrl1.GetStateList();
            var allVmList = CreateParallelViewModels(allStateList);
            this.pumpParallelChart1.SetBindingData(allVmList);
        }
        //状态改变事件
        private void HydroPumpListExtendGridCtrl1_StateChangedEvent(List<HydroPumpListItemExtendViewModel> allPumpStateList)
        private void HydroPumpListExtendGridCtrl1_StateChangedEvent(List<HydroPumpListItemExtendViewModel> allStateList)
        {
            var allVmList = CreateParallelViewModels(allStateList);
            this.pumpParallelChart1.SetBindingData(allVmList);
        }
        //保存
@@ -62,6 +78,145 @@
            this.SaveEvent?.Invoke(allSaveList);
        }
        //创建
        private List<PumpParallelViewModel> CreateParallelViewModels(List<HydroPumpListItemExtendViewModel> allStateList)
        {
            var allRunList = allStateList?.Where(x => x.RunStatus).ToList();
            if (allRunList == null || allRunList.Count < 1)
            {
                return default;
            }
            var vmList = new List<PumpParallelViewModel>();
            foreach (var item in allRunList)
            {
                var vm = new PumpParallelViewModel();
                vm.Id = item.Code;
                vm.Name = item.Name;
                vm.RatedQ = item.Vmo.RatedQ.HasValue ? item.Vmo.RatedQ.Value : 0;
                vm.RatedH = item.Vmo.RatedH.HasValue ? item.Vmo.RatedH.Value : 0;
                vm.RatedP = item.Vmo.RatedP;
                vm.RatedN = item.Vmo.RatedN.HasValue ? item.Vmo.RatedN.Value : 0;
                vm.RatedHz = item.Vmo.RatedHz;
                vm.CurrentHz = item.Hz;
                vm.CurrentN = Math.Round(item.Hz / item.Vmo.RatedHz * vm.RatedN, 1);
                vm.CurrentColor = item.Color;
                double extend = 1;
                var curveqh = item.HydroInfo.Curves?.Find(x => x.Code == item.Vmo.CurveQH);
                if (curveqh != null)
                {
                    var qh_pts = curveqh.CurveData?.Select(x => new Yw.Geometry.Point2d(x.X, x.Y)).ToList();
                    if (qh_pts != null && qh_pts.Count > 3)
                    {
                        vm.CurveQH = new CubicSpline2d(qh_pts);
                        var qh_current_pts = qh_pts.GetQHPointListByN(item.Vmo.RatedHz, item.Hz);
                        vm.CurrentCurveQH = new CubicSpline2d(qh_current_pts);
                        if (item.Extend > 100)
                        {
                            vm.CurrentExtendFlow = vm.CurrentCurveQH.MaxX;
                            extend = item.Extend / 100;
                            var qh_current_extend_pts = vm.CurrentCurveQH.GetPointListByXRatioRange(1, extend, 20);
                            vm.CurrentCurveQH = new CubicSpline2d(qh_current_extend_pts);
                        }
                    }
                }
                var curveqp = item.HydroInfo.Curves?.Find(x => x.Code == item.Vmo.CurveQP);
                if (curveqp != null)
                {
                    var qppts = curveqp.CurveData?.Select(x => new Yw.Geometry.Point2d(x.X, x.Y)).ToList();
                    if (qppts != null && qppts.Count > 3)
                    {
                        vm.CurveQP = new CubicSpline2d(qppts);
                        var sqppts = qppts.GetQHPointListByN(item.Vmo.RatedHz, item.Hz);
                        vm.CurrentCurveQP = new CubicSpline2d(sqppts);
                        if (extend > 1)
                        {
                            var qp_current_extend_pts = vm.CurrentCurveQP.GetPointListByXRatioRange(1, extend, 20);
                            vm.CurrentCurveQP = new CubicSpline2d(qp_current_extend_pts);
                        }
                    }
                }
                var curveqe = item.HydroInfo.Curves?.Find(x => x.Code == item.Vmo.CurveQE);
                if (curveqe != null)
                {
                    var qepts = curveqe.CurveData?.Select(x => new Yw.Geometry.Point2d(x.X, x.Y)).ToList();
                    if (qepts != null && qepts.Count > 3)
                    {
                        vm.CurveQE = new CubicSpline2d(qepts);
                        var sqepts = qepts.GetQHPointListByN(item.Vmo.RatedHz, item.Hz);
                        vm.CurrentCurveQE = new CubicSpline2d(sqepts);
                        if (extend > 1)
                        {
                            var qe_current_extend_pts = vm.CurrentCurveQE.GetPointListByXRatioRange(1, extend, 20);
                            vm.CurrentCurveQE = new CubicSpline2d(qe_current_extend_pts);
                        }
                    }
                }
                vmList.Add(vm);
            }
            return vmList;
        }
        //设计点改变
        private void PumpParallelChart1_DesignPointChangedEvent(List<PumpDesignPointViewModel> obj)
        {
            var vmList = obj?.Select(x => new HydroPumpDesignPointViewModel()
            {
                Code = x.Id,
                Name = x.Name,
                DesignQ = Math.Round(x.Q, 1),
                DesignH = Math.Round(x.H, 2),
                DesignP = x.P.HasValue ? Math.Round(x.P.Value, 1) : null,
                DesignE = x.E.HasValue ? Math.Round(x.E.Value, 1) : null,
            }).ToList();
            this.hydroPumpDesignPointListGridCtrl1.SetBindingData(vmList);
        }
        //查询点改变
        private void PumpParallelChart1_QueryPointChangedEvent(List<PumpQueryPointViewModel> obj)
        {
            var vmList = obj?.Select(x => new HydroPumpQueryPointViewModel()
            {
                Code = x.Id,
                Name = x.Name,
                QueryQ = Math.Round(x.Q, 1),
                QueryH = Math.Round(x.H, 2),
                QueryP = x.P.HasValue ? Math.Round(x.P.Value, 1) : null,
                QueryE = x.E.HasValue ? Math.Round(x.E.Value, 1) : null,
            }).ToList();
            this.hydroPumpQueryPointListGridCtrl1.SetBindingData(vmList);
        }
        //并联状态改变事件
        private void PumpParallelChart1_ParallelStatusChangedEvent(bool status, string msg)
        {
            this.ParallelStatusChangedEvent?.Invoke(status, msg);
        }
        //设计点
        private void btnDesign_Click(object sender, EventArgs e)
        {
            var qtext = this.txtDesignQ.Text.Trim();
            if (string.IsNullOrEmpty(qtext))
            {
                TipFormHelper.ShowWarn("请输入设计点流量!");
                return;
            }
            var htext = this.txtDesignH.Text.Trim();
            if (string.IsNullOrEmpty(htext))
            {
                TipFormHelper.ShowWarn("请输入设计点扬程!");
                return;
            }
            var q = double.Parse(qtext);
            var h = double.Parse(htext);
            this.pumpParallelChart1.SetDesignPoint(q, h);
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/01-parallel/SimulationPumpParallelDlg.Designer.cs
@@ -31,21 +31,24 @@
            ribbon = new DevExpress.XtraBars.Ribbon.RibbonControl();
            ribbonPage1 = new DevExpress.XtraBars.Ribbon.RibbonPage();
            ribbonPageGroup1 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup();
            simulationPumpParallelCtrl1 = new HStation.WinFrmUI.SimulationPumpParallelCtrl();
            simulationPumpParallelCtrl1 = new SimulationPumpParallelCtrl();
            ribbonStatusBar1 = new DevExpress.XtraBars.Ribbon.RibbonStatusBar();
            barStaticStatus = new DevExpress.XtraBars.BarStaticItem();
            ((ISupportInitialize)ribbon).BeginInit();
            SuspendLayout();
            // 
            // ribbon
            // 
            ribbon.ExpandCollapseItem.Id = 0;
            ribbon.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbon.ExpandCollapseItem });
            ribbon.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbon.ExpandCollapseItem, barStaticStatus });
            ribbon.Location = new Point(0, 0);
            ribbon.MaxItemId = 1;
            ribbon.MaxItemId = 2;
            ribbon.Name = "ribbon";
            ribbon.Pages.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPage[] { ribbonPage1 });
            ribbon.RibbonCaptionAlignment = DevExpress.XtraBars.Ribbon.RibbonCaptionAlignment.Left;
            ribbon.ShowDisplayOptionsMenuButton = DevExpress.Utils.DefaultBoolean.False;
            ribbon.Size = new Size(996, 32);
            ribbon.Size = new Size(1051, 32);
            ribbon.StatusBar = ribbonStatusBar1;
            // 
            // ribbonPage1
            // 
@@ -63,14 +66,29 @@
            simulationPumpParallelCtrl1.Dock = DockStyle.Fill;
            simulationPumpParallelCtrl1.Location = new Point(0, 32);
            simulationPumpParallelCtrl1.Name = "simulationPumpParallelCtrl1";
            simulationPumpParallelCtrl1.Size = new Size(996, 601);
            simulationPumpParallelCtrl1.Size = new Size(1051, 603);
            simulationPumpParallelCtrl1.TabIndex = 1;
            //
            // ribbonStatusBar1
            //
            ribbonStatusBar1.ItemLinks.Add(barStaticStatus);
            ribbonStatusBar1.Location = new Point(0, 611);
            ribbonStatusBar1.Name = "ribbonStatusBar1";
            ribbonStatusBar1.Ribbon = ribbon;
            ribbonStatusBar1.Size = new Size(1051, 24);
            //
            // barStaticStatus
            //
            barStaticStatus.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right;
            barStaticStatus.Id = 1;
            barStaticStatus.Name = "barStaticStatus";
            // 
            // SimulationPumpParallelDlg
            // 
            AutoScaleDimensions = new SizeF(7F, 14F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(996, 633);
            ClientSize = new Size(1051, 635);
            Controls.Add(ribbonStatusBar1);
            Controls.Add(simulationPumpParallelCtrl1);
            Controls.Add(ribbon);
            FormBorderStyle = FormBorderStyle.SizableToolWindow;
@@ -78,6 +96,7 @@
            Ribbon = ribbon;
            RibbonVisibility = DevExpress.XtraBars.Ribbon.RibbonVisibility.Hidden;
            StartPosition = FormStartPosition.CenterParent;
            StatusBar = ribbonStatusBar1;
            Text = "并联模拟";
            ((ISupportInitialize)ribbon).EndInit();
            ResumeLayout(false);
@@ -90,5 +109,7 @@
        private DevExpress.XtraBars.Ribbon.RibbonPage ribbonPage1;
        private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup1;
        private HStation.WinFrmUI.SimulationPumpParallelCtrl simulationPumpParallelCtrl1;
        private DevExpress.XtraBars.Ribbon.RibbonStatusBar ribbonStatusBar1;
        private DevExpress.XtraBars.BarStaticItem barStaticStatus;
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/01-parallel/SimulationPumpParallelDlg.cs
@@ -6,9 +6,34 @@
        {
            InitializeComponent();
            this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
            this.simulationPumpParallelCtrl1.SaveEvent += SimulationPumpParallelCtrl1_SaveEvent;
            this.simulationPumpParallelCtrl1.ParallelStatusChangedEvent += SimulationPumpParallelCtrl1_ParallelStatusChangedEvent;
        }
        /// <summary>
        /// 保存事件
        /// </summary>
        public event Action<List<SimulationPumpParallelSaveItemViewModel>> SaveEvent;
        /// <summary>
        /// 绑定数据
        /// </summary>
        public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo)
        {
            this.simulationPumpParallelCtrl1.SetBindingData(hydroInfo);
        }
        //保存
        private void SimulationPumpParallelCtrl1_SaveEvent(List<SimulationPumpParallelSaveItemViewModel> obj)
        {
            this.SaveEvent?.Invoke(obj);
        }
        //并联状态发生改变
        private void SimulationPumpParallelCtrl1_ParallelStatusChangedEvent(bool status, string msg)
        {
            this.barStaticStatus.Caption = msg;
        }
    }
WinFrmUI/Yw.WinFrmUI.Hydro.Core/19-pump/02-extend/HydroPumpListExtendGridCtrl.cs
@@ -33,15 +33,15 @@
        /// </summary>
        public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo)
        {
            SetBindingData(hydroInfo?.Pumps);
            SetBindingData(hydroInfo?.Pumps, hydroInfo);
        }
        /// <summary>
        /// 
        /// </summary>
        public void SetBindingData(List<Yw.Model.HydroPumpInfo> allPumpList)
        public void SetBindingData(List<Yw.Model.HydroPumpInfo> allPumpList, Yw.Model.HydroModelInfo hydroInfo)
        {
            var list = allPumpList?.Select(x => new HydroPumpListItemExtendViewModel(x, allPumpList)).ToList();
            var list = allPumpList?.Select(x => new HydroPumpListItemExtendViewModel(x, allPumpList, hydroInfo)).ToList();
            SetBindingData(list);
        }
WinFrmUI/Yw.WinFrmUI.Hydro.Core/19-pump/02-extend/HydroPumpListItemExtendViewModel.cs
@@ -8,7 +8,12 @@
        /// <summary>
        /// 
        /// </summary>
        public HydroPumpListItemExtendViewModel(Yw.Model.HydroPumpInfo rhs, List<Yw.Model.HydroPumpInfo> allPumpList)
        public HydroPumpListItemExtendViewModel
            (
                Yw.Model.HydroPumpInfo rhs,
                List<Yw.Model.HydroPumpInfo> allPumpList,
                Yw.Model.HydroModelInfo hydroInfo
            )
        {
            this.Code = rhs.Code;
            this.Name = rhs.Name;
@@ -21,6 +26,7 @@
            this.Extend = 100;
            this.RunStatus = rhs.LinkStatus == Yw.Hydro.LinkStatus.Open;
            this.Vmo = rhs;
            this.HydroInfo = hydroInfo;
        }
        /// <summary>
@@ -64,6 +70,11 @@
        /// </summary>
        public Yw.Model.HydroPumpInfo Vmo { get; set; }
        /// <summary>
        ///
        /// </summary>
        public Yw.Model.HydroModelInfo HydroInfo { get; set; }
    }
}