| | |
| | | using DevExpress.XtraEditors.Repository; |
| | | using DevExpress.XtraLayout.Utils; |
| | | using DevExpress.XtraVerticalGrid.Events; |
| | | using NetTaste; |
| | | using System.Windows.Forms.VisualStyles; |
| | | |
| | | namespace Yw.WinFrmUI |
| | | { |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取水力信息事件 |
| | | /// </summary> |
| | | public event Func<Yw.Model.HydroModelInfo> GetHydroInfoEvent; |
| | | /// <summary> |
| | | /// 选择曲线事件 |
| | | /// </summary> |
| | | public event Action<HydroParterPropertyViewModel, string> SelectCurveEvent; |
| | | |
| | | public event Func<HydroParterPropertyViewModel, string, bool> SelectCurveEvent; |
| | | /// <summary> |
| | | /// 选择模式事件 |
| | | /// </summary> |
| | | public event Action<HydroParterPropertyViewModel, string> SelectPatternEvent; |
| | | |
| | | public event Func<HydroParterPropertyViewModel, string, bool> SelectPatternEvent; |
| | | /// <summary> |
| | | /// 属性值正在改变事件 |
| | | /// </summary> |
| | | public event Action<HydroParterPropertyViewModel> PropertyValueChangingEvent; |
| | | |
| | | public event Func<HydroParterPropertyViewModel, bool> PropertyValueChangingEvent; |
| | | /// <summary> |
| | | /// 属性值发生改变事件 |
| | | /// </summary> |
| | | public event Action<HydroParterPropertyViewModel> PropertyValueChangedEvent; |
| | | public event Func<HydroParterPropertyViewModel, bool> PropertyValueChangedEvent; |
| | | |
| | | /// <summary> |
| | | /// 绑定对象 |
| | |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 绑定对象列表 |
| | | /// </summary> |
| | | public List<HydroParterPropertyViewModel> SelectedObjects |
| | | { |
| | | get { return this.propertyGridControl1.SelectedObjects?.Select(x => x as HydroParterPropertyViewModel).ToList(); } |
| | | set |
| | | { |
| | | this.propertyGridControl1.SelectedObjects = value?.ToArray(); |
| | | OnChanged(); |
| | | } |
| | | } |
| | | |
| | | |
| | | //改变触发 |
| | | protected virtual void OnChanged() |
| | | { |
| | | if (this.SelectedObject == null) |
| | | { |
| | | |
| | | } |
| | | else |
| | | { |
| | | |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | buttonEdit.ButtonClick += delegate |
| | | { |
| | | var vm = GetPropertyViewModel(e.Row); |
| | | this.SelectCurveEvent?.Invoke(vm, curvePro.CurveType); |
| | | if (this.SelectCurveEvent == null || !this.SelectCurveEvent.Invoke(vm, curvePro.CurveType)) |
| | | { |
| | | var hydroInfo = GetHydroInfoEvent?.Invoke(); |
| | | if (hydroInfo == null) |
| | | { |
| | | return; |
| | | } |
| | | switch (curvePro.CurveType) |
| | | { |
| | | case HydroCurve.Pump: |
| | | { |
| | | |
| | | } |
| | | break; |
| | | case HydroCurve.PumpQH: |
| | | { |
| | | var vmPump = vm as HydroPumpPropertyViewModel; |
| | | var curveQh = hydroInfo.Curves?.Find(x => x.Code == vmPump.CurveQH); |
| | | var curvePts = curveQh?.CurveData?.Select(x => new HydroCurvePointViewModel(x.X, x.Y)).ToList(); |
| | | var dlg = new HydroCurveViewDlg(); |
| | | dlg.Text = $"{vm.Name}-流量扬程曲线"; |
| | | dlg.TitleTextX = "流量(m³/h)"; |
| | | dlg.TitleTextY = "扬程(m)"; |
| | | dlg.SetBindingData(curvePts); |
| | | dlg.ShowDialog(); |
| | | } |
| | | break; |
| | | case HydroCurve.PumpQP: |
| | | { |
| | | |
| | | } |
| | | break; |
| | | case HydroCurve.PumpQE: |
| | | { |
| | | |
| | | } |
| | | break; |
| | | case HydroCurve.Valve: |
| | | { |
| | | |
| | | } |
| | | break; |
| | | case HydroCurve.ValveQL: |
| | | { |
| | | |
| | | } |
| | | break; |
| | | default: break; |
| | | } |
| | | } |
| | | }; |
| | | e.RepositoryItem = buttonEdit; |
| | | } |
| | |
| | | var descriptor = this.propertyGridControl1.GetPropertyDescriptor(e.Row); |
| | | var propertyViewModel = GetPropertyViewModel(e.Row); |
| | | this.PropertyValueChangedEvent?.Invoke(propertyViewModel); |
| | | if (this.PropertyValueChangedEvent == null || !this.PropertyValueChangedEvent.Invoke(propertyViewModel)) |
| | | { |
| | | var hydroInfo = GetHydroInfoEvent?.Invoke(); |
| | | if (hydroInfo == null) |
| | | { |
| | | return; |
| | | } |
| | | var allParterList = hydroInfo.GetAllParters(); |
| | | var parter = allParterList?.Find(x => x.ID == propertyViewModel.ID); |
| | | if (parter == null) |
| | | { |
| | | return; |
| | | } |
| | | parter.UpdateProperty(allParterList, propertyViewModel); |
| | | } |
| | | UpdateRows(); |
| | | } |
| | | |