lixiaojun
2024-10-18 63be53fe92e31fc67bea9dbcb83505f9db2e575a
WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/HydroParterPropertyCtrl.cs
@@ -24,13 +24,21 @@
        }
        /// <summary>
        /// 选择曲线事件
        /// 匹配db事件
        /// </summary>
        public event Func<HydroParterPropertyViewModel, string, bool> SelectCurveEvent;
        public event Action<Yw.Model.HydroParterInfo> MatchingDbEvent;
        /// <summary>
        /// 选择模式事件
        /// 查看曲线事件
        /// </summary>
        public event Func<HydroParterPropertyViewModel, string, bool> SelectPatternEvent;
        public event Action<Yw.Model.HydroParterInfo, string> ViewCurveEvent;
        /// <summary>
        /// 设置曲线事件
        /// </summary>
        public event Func<HydroParterPropertyViewModel, string, bool> SetCurveEvent;
        /// <summary>
        /// 设置模式事件
        /// </summary>
        public event Func<HydroParterPropertyViewModel, string, bool> SetPatternEvent;
        /// <summary>
        /// 属性值正在改变事件
        /// </summary>
@@ -40,10 +48,7 @@
        /// </summary>
        public event Func<HydroParterPropertyViewModel, bool> PropertyValueChangedEvent;
        /// <summary>
        /// 匹配db事件
        /// </summary>
        public event Action<Yw.Model.HydroParterInfo> MatchingDbEvent;
        //获取水力信息方法
        private Func<Yw.Model.HydroModelInfo> _hydroInfoFunc = null;
@@ -68,7 +73,6 @@
            set
            {
                this.propertyGridControl1.SelectedObject = value;
                OnChanged();
            }
        }
@@ -81,15 +85,7 @@
            set
            {
                this.propertyGridControl1.SelectedObjects = value?.ToArray();
                OnChanged();
            }
        }
        //改变触发
        protected virtual void OnChanged()
        {
        }
        /// <summary>
@@ -276,22 +272,27 @@
                buttonEdit.TextEditStyle = TextEditStyles.DisableTextEditor;
                buttonEdit.ButtonClick += delegate
                {
                    var vm = GetPropertyViewModel(e.Row);
                    if (this.SelectCurveEvent == null || !this.SelectCurveEvent.Invoke(vm, curvePro.CurveType))
                    var hydroInfo = _hydroInfoFunc?.Invoke();
                    if (hydroInfo == null)
                    {
                        var hydroInfo = _hydroInfoFunc?.Invoke();
                        if (hydroInfo == null)
                        {
                            return;
                        }
                        switch (curvePro.CurveType)
                        {
                            case HydroCurve.Pump:
                        return;
                    }
                    var vm = GetPropertyViewModel(e.Row);
                    switch (curvePro.CurveType)
                    {
                        case HydroCurve.Pump:
                            {
                                var pumpInfo = hydroInfo.Pumps?.Find(x => x.Code == vm.Code);
                                if (pumpInfo == null)
                                {
                                    return;
                                }
                                break;
                            case HydroCurve.PumpQH:
                                this.ViewCurveEvent?.Invoke(pumpInfo, HydroCurve.Pump);
                            }
                            break;
                        case HydroCurve.PumpQH:
                            {
                                if (this.SetCurveEvent == null || !this.SetCurveEvent.Invoke(vm, curvePro.CurveType))
                                {
                                    var vmPump = vm as HydroPumpPropertyViewModel;
                                    var curveQh = hydroInfo.Curves?.Find(x => x.Code == vmPump.CurveQH);
@@ -313,8 +314,11 @@
                                    dlg.SetBindingData(hydroInfo, curveQh, curvePro.CurveType);
                                    dlg.ShowDialog();
                                }
                                break;
                            case HydroCurve.PumpQP:
                            }
                            break;
                        case HydroCurve.PumpQP:
                            {
                                if (this.SetCurveEvent == null || !this.SetCurveEvent.Invoke(vm, curvePro.CurveType))
                                {
                                    var vmPump = vm as HydroPumpPropertyViewModel;
                                    var curveQp = hydroInfo.Curves?.Find(x => x.Code == vmPump.CurveQP);
@@ -336,8 +340,11 @@
                                    dlg.SetBindingData(hydroInfo, curveQp, curvePro.CurveType);
                                    dlg.ShowDialog();
                                }
                                break;
                            case HydroCurve.PumpQE:
                            }
                            break;
                        case HydroCurve.PumpQE:
                            {
                                if (this.SetCurveEvent == null || !this.SetCurveEvent.Invoke(vm, curvePro.CurveType))
                                {
                                    var vmPump = vm as HydroPumpPropertyViewModel;
                                    var curveQe = hydroInfo.Curves?.Find(x => x.Code == vmPump.CurveQE);
@@ -359,19 +366,22 @@
                                    dlg.SetBindingData(hydroInfo, curveQe, curvePro.CurveType);
                                    dlg.ShowDialog();
                                }
                                break;
                            case HydroCurve.Valve:
                            }
                            break;
                        case HydroCurve.Valve:
                            {
                            }
                            break;
                        case HydroCurve.ValveQL:
                            {
                                if (this.SetCurveEvent == null || !this.SetCurveEvent.Invoke(vm, curvePro.CurveType))
                                {
                                }
                                break;
                            case HydroCurve.ValveQL:
                                {
                                }
                                break;
                            default: break;
                        }
                            }
                            break;
                        default: break;
                    }
                };
                e.RepositoryItem = buttonEdit;
@@ -413,7 +423,7 @@
                buttonEdit.ButtonClick += delegate
                {
                    var vm = GetPropertyViewModel(e.Row);
                    this.SelectPatternEvent?.Invoke(vm, patternPro.PatternType);
                    this.SetPatternEvent?.Invoke(vm, patternPro.PatternType);
                };
                e.RepositoryItem = buttonEdit;
            }