WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/XhsProjectSimulationPropertyCtrl.cs
@@ -11,20 +11,22 @@ { InitializeComponent(); this.hydroParterPropertyCtrl1.GetHydroInfoEvent += HydroParterPropertyCtrl1_GetHydroInfoEvent; this.hydroParterPropertyCtrl1.SelectCurveEvent += HydroParterPropertyCtrl1_SelectCurveEvent; this.hydroParterPropertyCtrl1.SelectPatternEvent += HydroParterPropertyCtrl1_SelectPatternEvent; this.hydroParterPropertyCtrl1.PropertyValueChangedEvent += HydroParterPropertyCtrl1_PropertyValueChangedEvent; this.hydroParterPropertyCtrl1.PropertyValueChangingEvent += HydroParterPropertyCtrl1_PropertyValueChangingEvent; this.hydroParterPropertyCtrl1.MatchingDbEvent += HydroParterPropertyCtrl1_MatchingDbEvent; } //æ°´åä¿¡æ¯æ¹æ³ private Func<Yw.Model.HydroModelInfo> _hydroInfoFunc = null; /// <summary> /// ç»å®æ°æ® /// åå§åæ°æ® /// </summary> public void SetBindingData(Func<Yw.Model.HydroModelInfo> hydroInfoFunc) public void InitialData(Func<Yw.Model.HydroModelInfo> hydroInfoFunc) { _hydroInfoFunc = hydroInfoFunc; } @@ -84,13 +86,6 @@ } vm.UpdateCalcuProperty(rhs); this.hydroParterPropertyCtrl1.UpdateRows(); } //è·åæ°´åä¿¡æ¯äºä»¶ private Yw.Model.HydroModelInfo HydroParterPropertyCtrl1_GetHydroInfoEvent() { var hydroInfo = _hydroInfoFunc?.Invoke(); return hydroInfo; } //éæ©æ²çº¿ @@ -181,5 +176,102 @@ { return false; } //å¹é Dbäºä»¶ private void HydroParterPropertyCtrl1_MatchingDbEvent(Yw.Model.HydroParterInfo parter) { if (parter == null) { return; } var hydroInfo = _hydroInfoFunc?.Invoke(); if (hydroInfo == null) { return; } switch (parter.Catalog) { case Yw.Hydro.ParterCatalog.Pump://æ°´æ³µ { var pumpInfo = hydroInfo.Pumps?.Find(x => x.Code == parter.Code); var input = AssetsMatchingParasHelper.Create(hydroInfo, pumpInfo); var dlg = new PumpMainCurveChoiceDlg(); dlg.SetBindingData(input); dlg.ReloadDataEvent += (rhs) => { var bol = AssetsMatchingParasHelper.Apply(hydroInfo, rhs); if (bol) { TipFormHelper.ShowSucceed("å¹é æå"); } else { TipFormHelper.ShowWarn("å¹é 失败"); } }; dlg.ShowDialog(); } break; case Yw.Hydro.ParterCatalog.Valve://éé¨ { var valveInfo = hydroInfo.Valves?.Find(x => x.Code == parter.Code); var input = AssetsMatchingParasHelper.Create(hydroInfo, valveInfo); var dlg = new ValveMainCurveChoiceDlg(); dlg.SetBindingData(input); dlg.ReloadDataEvent += (rhs) => { var bol = AssetsMatchingParasHelper.Apply(hydroInfo, rhs); if (bol) { TipFormHelper.ShowSucceed("å¹é æå"); } else { TipFormHelper.ShowWarn("å¹é 失败"); } }; dlg.ShowDialog(); } break; case Yw.Hydro.ParterCatalog.Pipe://管é { } break; case Yw.Hydro.ParterCatalog.Elbow://弯头 { var elbowInfo = hydroInfo.Elbows?.Find(x => x.Code == parter.Code); var input = AssetsMatchingParasHelper.Create(hydroInfo, elbowInfo); var dlg = new ElbowSingMatchingDlg(); dlg.SetBindingData(input); dlg.ReloadDataEvent += (rhs) => { var bol = AssetsMatchingParasHelper.Apply(hydroInfo, rhs); if (bol) { TipFormHelper.ShowSucceed("å¹é æå"); } else { TipFormHelper.ShowWarn("å¹é 失败"); } }; dlg.ShowDialog(); } break; case Yw.Hydro.ParterCatalog.Threelink://ä¸é { } break; case Yw.Hydro.ParterCatalog.Fourlink://åé { } break; } } } } WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
@@ -78,7 +78,7 @@ this.PageTitle.Caption = $"{_project.Name}\r\næ°´åæ¨¡æ"; await this.xhsProjectSimulationBimfaceCtrl1.SetBindingData(_project, _projectSite, () => _hydroInfo); this.xhsProjectSimulationQ3dCtrl1.SetBindingData(_hydroInfo); this.xhsProjectSimulationPropertyCtrl1.SetBindingData(() => _hydroInfo); this.xhsProjectSimulationPropertyCtrl1.InitialData(() => _hydroInfo); this.xhsProjectSimulationSearchCtrl1.InitialData(() => _hydroInfo); } WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/00-core/HydroParterPropertyViewModel.cs
@@ -71,6 +71,7 @@ [Category("åºç¡ä¿¡æ¯")] [DisplayName("åå·")] [PropertyOrder(5)] [IsHydroModelType] [Browsable(true)] public virtual string ModelType { get; set; } WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/04-attribute/IsHydroModelTypeAttribute.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,18 @@ namespace Yw.WinFrmUI { /// <summary> /// ç¨äºæ è¯æ°´ååå·ç¹æ§ /// </summary> [AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = true)] public class IsHydroModelTypeAttribute : Attribute { /// <summary> /// /// </summary> public IsHydroModelTypeAttribute() { } } } WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/HydroParterPropertyCtrl.cs
@@ -7,6 +7,7 @@ using DevExpress.XtraLayout.Utils; using DevExpress.XtraVerticalGrid.Events; using NetTaste; using SQLitePCL; using System.Windows.Forms.VisualStyles; using Yw.EPAnet; @@ -23,10 +24,6 @@ } /// <summary> /// è·åæ°´åä¿¡æ¯äºä»¶ /// </summary> public event Func<Yw.Model.HydroModelInfo> GetHydroInfoEvent; /// <summary> /// éæ©æ²çº¿äºä»¶ /// </summary> public event Func<HydroParterPropertyViewModel, string, bool> SelectCurveEvent; @@ -42,6 +39,22 @@ /// 屿§å¼åçæ¹åäºä»¶ /// </summary> public event Func<HydroParterPropertyViewModel, bool> PropertyValueChangedEvent; /// <summary> /// å¹é dbäºä»¶ /// </summary> public event Action<Yw.Model.HydroParterInfo> MatchingDbEvent; //è·åæ°´åä¿¡æ¯æ¹æ³ private Func<Yw.Model.HydroModelInfo> _hydroInfoFunc = null; /// <summary> /// åå§åæ°æ® /// </summary> public void InitialData(Func<Yw.Model.HydroModelInfo> hydroInfoFunc) { _hydroInfoFunc = hydroInfoFunc; } /// <summary> /// ç»å®å¯¹è±¡ @@ -266,7 +279,7 @@ var vm = GetPropertyViewModel(e.Row); if (this.SelectCurveEvent == null || !this.SelectCurveEvent.Invoke(vm, curvePro.CurveType)) { var hydroInfo = GetHydroInfoEvent?.Invoke(); var hydroInfo = _hydroInfoFunc?.Invoke(); if (hydroInfo == null) { return; @@ -366,6 +379,30 @@ #endregion #region åå· var modelTypePro = (IsHydroModelTypeAttribute)descriptor.Attributes[typeof(IsHydroModelTypeAttribute)]; if (modelTypePro != null) { var buttonEdit = new RepositoryItemButtonEdit(); buttonEdit.TextEditStyle = TextEditStyles.DisableTextEditor; buttonEdit.ButtonClick += delegate { var hydroInfo = _hydroInfoFunc?.Invoke(); if (hydroInfo == null) { return; } var vm = GetPropertyViewModel(e.Row); var allParterList = hydroInfo.GetAllParters(); var parter = allParterList?.Find(x => x.Code == vm.Code); this.MatchingDbEvent?.Invoke(parter); }; e.RepositoryItem = buttonEdit; } #endregion #region æ¨¡å¼ var patternPro = (IsHydroPatternProAttribute)descriptor.Attributes[typeof(IsHydroPatternProAttribute)]; @@ -429,7 +466,7 @@ this.PropertyValueChangedEvent?.Invoke(propertyViewModel); if (this.PropertyValueChangedEvent == null || !this.PropertyValueChangedEvent.Invoke(propertyViewModel)) { var hydroInfo = GetHydroInfoEvent?.Invoke(); var hydroInfo = _hydroInfoFunc?.Invoke(); if (hydroInfo == null) { return;