From 7b65f86343ca014b12894f09b7d62e8b5ac1f95d Mon Sep 17 00:00:00 2001
From: lixiaojun <1287241240@qq.com>
Date: 星期五, 24 一月 2025 09:15:11 +0800
Subject: [PATCH] 单工况损失曲线增加上下游追踪和高亮显示

---
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/SimulationPropertyCtrl.cs |  248 ++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 193 insertions(+), 55 deletions(-)

diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/SimulationPropertyCtrl.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/SimulationPropertyCtrl.cs
index ff7114b..243bc02 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/SimulationPropertyCtrl.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/SimulationPropertyCtrl.cs
@@ -1,7 +1,4 @@
-锘縰sing DevExpress.Utils.MVVM;
-using HStation.WinFrmUI.PhartRelation;
-using HStation.WinFrmUI.Xhs;
-using Yw.Model;
+锘縰sing Yw.Model;
 
 namespace HStation.WinFrmUI
 {
@@ -21,10 +18,9 @@
             this.hydroVisualPropertyCtrl1.PropertyValueChangedEvent += HydroVisualPropertyCtrl1_PropertyValueChangedEvent;
             this.hydroVisualPropertyCtrl1.MarkPropertyValueChangedEvent += HydroVisualPropertyCtrl1_MarkPropertyValueChangedEvent;
             this.hydroVisualPropertyCtrl1.GradingPropertyValueChangedEvent += HydroPVisualPropertyCtrl1_GradingPropertyValueChangedEvent;
-            this.hydroVisualPropertyCtrl1.FlowEffectPropertyValueChangedEvent += HydroVisualPropertyCtrl1_FlowEffectPropertyValueChangedEvent;
         }
 
-        #region 浜嬩欢闆�
+        #region 浜嬩欢闆嗗悎
 
         /// <summary>
         /// 鏋勪欢鏌ョ湅浜嬩欢
@@ -53,14 +49,35 @@
         /// </summary>
         public event Action<HydroVisualInfo> GradingPropertyValueChangedEvent;
 
-        /// <summary>
-        /// 姘存祦鍔ㄧ敾灞炴�у�兼敼鍙樹簨浠�
-        /// </summary>
-        public event Action<HydroVisualInfo> FlowEffectPropertyValueChangedEvent;
+        private HydroChangeHelper _changeHelper = null;//鏀瑰彉杈呭姪绫�
+        private HydroPropStatusHelper _propStatusHelper = null;//灞炴�х姸鎬佽緟鍔╃被
 
         #endregion
 
+        /// <summary>
+        /// 鍒濆鍖栨暟鎹�
+        /// </summary>
+        public void InitialData
+            (
+                HydroChangeHelper changeHelper,
+                HydroPropStatusHelper propStatusHelper
+            )
+        {
+            _changeHelper = changeHelper;
+            _propStatusHelper = propStatusHelper;
+            this.hydroVisualPropertyCtrl1.InitialData(changeHelper, propStatusHelper);
+        }
+
         #region 灞炴�ц祴鍊�
+
+        /// <summary>
+        /// 鍏佽缂栬緫
+        /// </summary>
+        public bool AllowEdit
+        {
+            get { return this.hydroVisualPropertyCtrl1.AllowEdit; }
+            set { this.hydroVisualPropertyCtrl1.AllowEdit = value; }
+        }
 
         /// <summary>
         /// 閫夋嫨瀵硅薄
@@ -70,6 +87,11 @@
             get { return this.hydroVisualPropertyCtrl1.SelectedObject; }
             set { this.hydroVisualPropertyCtrl1.SelectedObject = value; }
         }
+
+        /// <summary>
+        /// 璁$畻缁撴灉
+        /// </summary>
+        public Func<HydroCalcuResult> CalcuResult { get; set; }
 
         #endregion
 
@@ -105,7 +127,7 @@
             this.hydroVisualPropertyCtrl1.UpdateRows();
         }
 
-        #endregion 灞炴�ф洿鏂�
+        #endregion
 
         #region 浜嬩欢瀹炵幇
 
@@ -122,169 +144,236 @@
                     {
                         var tankViewModel = vm as HydroTankViewModel;
                         var input = HydroMatchingHelper.Create(tankViewModel);
-                        var dlg = new SimulationTankSingleMatchingDlg();
+                        var dlg = new AssetsTankSingleMatchingDlg();
                         dlg.ReloadDataEvent += (output) =>
                         {
-                            HydroMatchingHelper.Apply(tankViewModel, output);
+                            HydroMatchingHelper.Apply(tankViewModel, output, _changeHelper, _propStatusHelper);
                             this.hydroVisualPropertyCtrl1.UpdateRows();
+                            this.PropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.MarkPropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.GradingPropertyValueChangedEvent?.Invoke(vm.Vmo);
                         };
                         dlg.SetBindingData(input);
                         dlg.ShowDialog();
                     }
                     break;
+
                 case Yw.Hydro.ParterCatalog.Waterbox:
                     {
                         var tankViewModel = vm as HydroTankViewModel;
                         var input = HydroMatchingHelper.Create(tankViewModel);
-                        var dlg = new SimulationTankSingleMatchingDlg();
+                        var dlg = new AssetsTankSingleMatchingDlg();
                         dlg.ReloadDataEvent += (output) =>
                         {
-                            HydroMatchingHelper.Apply(tankViewModel, output);
+                            HydroMatchingHelper.Apply(tankViewModel, output, _changeHelper, _propStatusHelper);
                             this.hydroVisualPropertyCtrl1.UpdateRows();
+                            this.PropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.MarkPropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.GradingPropertyValueChangedEvent?.Invoke(vm.Vmo);
                         };
                         dlg.SetBindingData(input);
                         dlg.ShowDialog();
                     }
                     break;
+
                 case Yw.Hydro.ParterCatalog.Blunthead:
                     {
                         var bluntheadViewModel = vm as HydroBluntheadViewModel;
                         var input = HydroMatchingHelper.Create(bluntheadViewModel);
-                        var dlg = new SimulationBluntheadSingleMatchingDlg();
+                        var dlg = new AssetsBluntheadSingleMatchingDlg();
                         dlg.ReloadDataEvent += (output) =>
                         {
-                            HydroMatchingHelper.Apply(bluntheadViewModel, output);
+                            HydroMatchingHelper.Apply(bluntheadViewModel, output, _changeHelper, _propStatusHelper);
                             this.hydroVisualPropertyCtrl1.UpdateRows();
+                            this.PropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.MarkPropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.GradingPropertyValueChangedEvent?.Invoke(vm.Vmo);
                         };
                         dlg.SetBindingData(input);
                         dlg.ShowDialog();
                     }
                     break;
+
                 case Yw.Hydro.ParterCatalog.Elbow:
                     {
                         var elbowViewModel = vm as HydroElbowViewModel;
                         var input = HydroMatchingHelper.Create(elbowViewModel);
-                        var dlg = new SimulationElbowSingleMatchingDlg();
+                        var dlg = new AssetsElbowSingleMatchingDlg();
                         dlg.ReloadDataEvent += (output) =>
                         {
-                            HydroMatchingHelper.Apply(elbowViewModel, output);
+                            HydroMatchingHelper.Apply(elbowViewModel, output, _changeHelper, _propStatusHelper);
                             this.hydroVisualPropertyCtrl1.UpdateRows();
+                            this.PropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.MarkPropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.GradingPropertyValueChangedEvent?.Invoke(vm.Vmo);
                         };
                         dlg.SetBindingData(input);
                         dlg.ShowDialog();
                     }
                     break;
+
                 case Yw.Hydro.ParterCatalog.Threelink:
                     {
                         var threelinkViewModel = vm as HydroThreelinkViewModel;
                         var input = HydroMatchingHelper.Create(threelinkViewModel);
-                        var dlg = new SimulationThreelinkSingleMatchingDlg();
+                        var dlg = new AssetsThreelinkSingleMatchingDlg();
                         dlg.ReloadDataEvent += (output) =>
                         {
-                            HydroMatchingHelper.Apply(threelinkViewModel, output);
+                            HydroMatchingHelper.Apply(threelinkViewModel, output, _changeHelper, _propStatusHelper);
                             this.hydroVisualPropertyCtrl1.UpdateRows();
+                            this.PropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.MarkPropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.GradingPropertyValueChangedEvent?.Invoke(vm.Vmo);
                         };
                         dlg.SetBindingData(input);
                         dlg.ShowDialog();
                     }
                     break;
+
                 case Yw.Hydro.ParterCatalog.Fourlink:
                     {
                         var fourlinkViewModel = vm as HydroFourlinkViewModel;
                         var input = HydroMatchingHelper.Create(fourlinkViewModel);
-                        var dlg = new SimulationFourlinkSingleMatchingDlg();
+                        var dlg = new AssetsFourlinkSingleMatchingDlg();
                         dlg.ReloadDataEvent += (output) =>
                         {
-                            HydroMatchingHelper.Apply(fourlinkViewModel, output);
+                            HydroMatchingHelper.Apply(fourlinkViewModel, output, _changeHelper, _propStatusHelper);
                             this.hydroVisualPropertyCtrl1.UpdateRows();
+                            this.PropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.MarkPropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.GradingPropertyValueChangedEvent?.Invoke(vm.Vmo);
                         };
                         dlg.SetBindingData(input);
                         dlg.ShowDialog();
                     }
                     break;
+
                 case Yw.Hydro.ParterCatalog.Meter:
                     {
                         var meterViewModel = vm as HydroMeterViewModel;
                         var input = HydroMatchingHelper.Create(meterViewModel);
-                        var dlg = new SimulationMeterSingleMatchingDlg();
+                        var dlg = new AssetsMeterSingleMatchingDlg();
                         dlg.ReloadDataEvent += (output) =>
                         {
-                            HydroMatchingHelper.Apply(meterViewModel, output);
+                            HydroMatchingHelper.Apply(meterViewModel, output, _changeHelper, _propStatusHelper);
                             this.hydroVisualPropertyCtrl1.UpdateRows();
+                            this.PropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.MarkPropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.GradingPropertyValueChangedEvent?.Invoke(vm.Vmo);
                         };
                         dlg.SetBindingData(input);
                         dlg.ShowDialog();
                     }
                     break;
+
                 case Yw.Hydro.ParterCatalog.Flowmeter:
                     {
                         var flowmeterViewModel = vm as HydroFlowmeterViewModel;
                         var input = HydroMatchingHelper.Create(flowmeterViewModel);
-                        var dlg = new SimulationFlowmeterSingleMatchingDlg();
+                        var dlg = new AssetsFlowmeterSingleMatchingDlg();
                         dlg.ReloadDataEvent += (output) =>
                         {
-                            HydroMatchingHelper.Apply(flowmeterViewModel, output);
+                            HydroMatchingHelper.Apply(flowmeterViewModel, output, _changeHelper, _propStatusHelper);
                             this.hydroVisualPropertyCtrl1.UpdateRows();
+                            this.PropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.MarkPropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.GradingPropertyValueChangedEvent?.Invoke(vm.Vmo);
                         };
                         dlg.SetBindingData(input);
                         dlg.ShowDialog();
                     }
                     break;
+
                 case Yw.Hydro.ParterCatalog.Pressmeter:
                     {
                         var pressmeterViewModel = vm as HydroPressmeterViewModel;
                         var input = HydroMatchingHelper.Create(pressmeterViewModel);
-                        var dlg = new SimulationPressmeterSingleMatchingDlg();
+                        var dlg = new AssetsPressmeterSingleMatchingDlg();
                         dlg.ReloadDataEvent += (output) =>
                         {
-                            HydroMatchingHelper.Apply(pressmeterViewModel, output);
+                            HydroMatchingHelper.Apply(pressmeterViewModel, output, _changeHelper, _propStatusHelper);
                             this.hydroVisualPropertyCtrl1.UpdateRows();
+                            this.PropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.MarkPropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.GradingPropertyValueChangedEvent?.Invoke(vm.Vmo);
                         };
                         dlg.SetBindingData(input);
                         dlg.ShowDialog();
                     }
                     break;
+
                 case Yw.Hydro.ParterCatalog.Nozzle:
                     {
                         var nozzleViewModel = vm as HydroNozzleViewModel;
                         var input = HydroMatchingHelper.Create(nozzleViewModel);
-                        var dlg = new SimulationSprinklerSingleMatchingDlg();
+                        var dlg = new AssetsSprinklerSingleMatchingDlg();
                         dlg.ReloadDataEvent += (output) =>
                         {
-                            HydroMatchingHelper.Apply(nozzleViewModel, output);
+                            HydroMatchingHelper.Apply(nozzleViewModel, output, _changeHelper, _propStatusHelper);
                             this.hydroVisualPropertyCtrl1.UpdateRows();
+                            this.PropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.MarkPropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.GradingPropertyValueChangedEvent?.Invoke(vm.Vmo);
                         };
                         dlg.SetBindingData(input);
                         dlg.ShowDialog();
                     }
                     break;
+
                 case Yw.Hydro.ParterCatalog.Hydrant:
                     {
                         var hydrantViewModel = vm as HydroHydrantViewModel;
                         var input = HydroMatchingHelper.Create(hydrantViewModel);
-                        var dlg = new SimulationHydrantSingleMatchingDlg();
+                        var dlg = new AssetsHydrantSingleMatchingDlg();
                         dlg.ReloadDataEvent += (output) =>
                         {
-                            HydroMatchingHelper.Apply(hydrantViewModel, output);
+                            HydroMatchingHelper.Apply(hydrantViewModel, output, _changeHelper, _propStatusHelper);
                             this.hydroVisualPropertyCtrl1.UpdateRows();
+                            this.PropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.MarkPropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.GradingPropertyValueChangedEvent?.Invoke(vm.Vmo);
                         };
                         dlg.SetBindingData(input);
                         dlg.ShowDialog();
                     }
                     break;
+
+                case Yw.Hydro.ParterCatalog.Cooling:
+                    {
+                        var coolingViewModel = vm as HydroCoolingViewModel;
+                        var input = HydroMatchingHelper.Create(coolingViewModel);
+                        var dlg = new AssetsCoolingSingleMatchingDlg();
+                        dlg.ReloadDataEvent += (output) =>
+                        {
+                            HydroMatchingHelper.Apply(coolingViewModel, output, _changeHelper, _propStatusHelper);
+                            this.hydroVisualPropertyCtrl1.UpdateRows();
+                            this.PropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.MarkPropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.GradingPropertyValueChangedEvent?.Invoke(vm.Vmo);
+                        };
+                        dlg.SetBindingData(input);
+                        dlg.ShowDialog();
+                    }
+                    break;
+
                 case Yw.Hydro.ParterCatalog.Pipe:
                     {
                         var pipeViewModel = vm as HydroPipeViewModel;
                         var input = HydroMatchingHelper.Create(pipeViewModel);
-                        var dlg = new SimulationPipeSingleMatchingDlg();
+                        var dlg = new AssetsPipeSingleMatchingDlg();
                         dlg.ReloadDataEvent += (output) =>
                         {
-                            HydroMatchingHelper.Apply(pipeViewModel, output);
+                            HydroMatchingHelper.Apply(pipeViewModel, output, _changeHelper, _propStatusHelper);
                             this.hydroVisualPropertyCtrl1.UpdateRows();
+                            this.PropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.MarkPropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.GradingPropertyValueChangedEvent?.Invoke(vm.Vmo);
                         };
+                        dlg.SetBindingData(input);
                         dlg.ShowDialog();
                     }
                     break;
+
                 case Yw.Hydro.ParterCatalog.Pump:
                     {
                         var pumpViewModel = vm as HydroPumpViewModel;
@@ -292,57 +381,72 @@
                         var dlg = new SimulationPumpSingleMatchingDlg();
                         dlg.ReloadDataEvent += (output) =>
                         {
-                            HydroMatchingHelper.Apply(pumpViewModel, output);
+                            HydroMatchingHelper.Apply(pumpViewModel, output, _changeHelper, _propStatusHelper);
                             this.hydroVisualPropertyCtrl1.UpdateRows();
+                            this.PropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.MarkPropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.GradingPropertyValueChangedEvent?.Invoke(vm.Vmo);
                         };
                         dlg.SetBindingData(input);
                         dlg.ShowDialog();
                     }
                     break;
+
                 case Yw.Hydro.ParterCatalog.Valve:
                     {
                         var valveViewModel = vm as HydroValveViewModel;
                         var input = HydroMatchingHelper.Create(valveViewModel);
-                        var dlg = new SimulationValveSingleMatchingDlg();
+                        var dlg = new AssetsValveSingleMatchingDlg();
                         dlg.ReloadDataEvent += (output) =>
                         {
-                            HydroMatchingHelper.Apply(valveViewModel, output);
+                            HydroMatchingHelper.Apply(valveViewModel, output, _changeHelper, _propStatusHelper);
                             this.hydroVisualPropertyCtrl1.UpdateRows();
+                            this.PropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.MarkPropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.GradingPropertyValueChangedEvent?.Invoke(vm.Vmo);
                         };
                         dlg.SetBindingData(input);
                         dlg.ShowDialog();
                     }
                     break;
+
                 case Yw.Hydro.ParterCatalog.Exchanger:
                     {
                         var exchangerViewModel = vm as HydroExchangerViewModel;
                         var input = HydroMatchingHelper.Create(exchangerViewModel);
-                        var dlg = new SimulationExchangerSingleMatchingDlg();
+                        var dlg = new AssetsExchangerSingleMatchingDlg();
                         dlg.ReloadDataEvent += (output) =>
                         {
                             HydroMatchingHelper.Apply(exchangerViewModel, output);
                             this.hydroVisualPropertyCtrl1.UpdateRows();
+                            this.PropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.MarkPropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.GradingPropertyValueChangedEvent?.Invoke(vm.Vmo);
                         };
                         dlg.SetBindingData(input);
                         dlg.ShowDialog();
                     }
                     break;
+
                 case Yw.Hydro.ParterCatalog.Compressor:
                     {
                         var compressorViewModel = vm as HydroCompressorViewModel;
                         var input = HydroMatchingHelper.Create(compressorViewModel);
-                        var dlg = new SimulationCompressorSingleMatchingDlg();
+                        var dlg = new AssetsCompressorSingleMatchingDlg();
                         dlg.ReloadDataEvent += (output) =>
                         {
                             HydroMatchingHelper.Apply(compressorViewModel, output);
                             this.hydroVisualPropertyCtrl1.UpdateRows();
+                            this.PropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.MarkPropertyValueChangedEvent?.Invoke(vm.Vmo);
+                            this.GradingPropertyValueChangedEvent?.Invoke(vm.Vmo);
                         };
                         dlg.SetBindingData(input);
                         dlg.ShowDialog();
                     }
                     break;
-                default: break;
 
+                default: break;
             }
         }
 
@@ -358,10 +462,19 @@
                 case HydroCurve.Tank:
                     {
                         var tankViewModel = vm as HydroTankViewModel;
-                        var dlg = new TankChartShowDlg();
-                        dlg.ShowDialog();
+                        var curveInfo = tankViewModel.HydroInfo.Curves?.Find(x => x.Code == tankViewModel.VolCurve);
+                        if (curveInfo != null)
+                        {
+                            if (long.TryParse(curveInfo.DbId, out long longDbId))
+                            {
+                                var dlg = new AssetsTankCurveVOLViewDlg();
+                                dlg.SetBindingData(longDbId);
+                                dlg.ShowDialog();
+                            }
+                        }
                     }
                     break;
+
                 case HydroCurve.Pump:
                     {
                         var pumpViewModel = vm as HydroPumpViewModel;
@@ -373,31 +486,59 @@
                             pumpViewModel.UpdateProperty();
                             this.hydroVisualPropertyCtrl1.UpdateRows();
                         };
-                        dlg.SetBindingData(pumpViewModel);
+                        dlg.SetBindingData(pumpViewModel, this.CalcuResult?.Invoke());
                         dlg.ShowDialog();
                     }
                     break;
+
                 case HydroCurve.Valve:
                     {
                         var valveViewModel = vm as HydroValveViewModel;
-                        var dlg = new ValveChartShowDlg();
-                        dlg.ShowDialog();
+                        var curveInfo = valveViewModel.HydroInfo.Curves?.Find(x => x.Code == valveViewModel.CurveOL);
+                        if (curveInfo != null)
+                        {
+                            if (long.TryParse(curveInfo.DbId, out long longDbId))
+                            {
+                                var dlg = new AssetsValveCurveViewDlg();
+                                dlg.SetBindingData(longDbId);
+                                dlg.ShowDialog();
+                            }
+                        }
                     }
                     break;
+
                 case HydroCurve.Exchanger:
                     {
                         var exchangerViewModel = vm as HydroExchangerViewModel;
-                        var dlg = new ExchangerChartShowDlg();
-                        dlg.ShowDialog();
+                        var curveInfo = exchangerViewModel.HydroInfo.Curves?.Find(x => x.Code == exchangerViewModel.CurveQL);
+                        if (curveInfo != null)
+                        {
+                            if (long.TryParse(curveInfo.DbId, out long longDbId))
+                            {
+                                var dlg = new AssetsExchangerCurveQLViewDlg();
+                                dlg.SetBindingData(longDbId);
+                                dlg.ShowDialog();
+                            }
+                        }
                     }
                     break;
+
                 case HydroCurve.Compressor:
                     {
                         var compressorViewModel = vm as HydroCompressorViewModel;
-                        var dlg = new CompressorChartShowDlg();
-                        dlg.ShowDialog();
+                        var curveInfo = compressorViewModel.HydroInfo.Curves?.Find(x => x.Code == compressorViewModel.CurveQL);
+                        if (curveInfo != null)
+                        {
+                            if (long.TryParse(curveInfo.DbId, out long longDbId))
+                            {
+                                var dlg = new AssetsCompressorCurveQLViewDlg();
+                                dlg.SetBindingData(longDbId);
+                                dlg.ShowDialog();
+                            }
+                        }
                     }
                     break;
+
                 default: break;
             }
         }
@@ -444,12 +585,9 @@
             this.GradingPropertyValueChangedEvent?.Invoke(vm?.Vmo);
         }
 
-        //姘存祦鍔ㄧ敾灞炴�у彂鐢熸敼鍙�
-        private void HydroVisualPropertyCtrl1_FlowEffectPropertyValueChangedEvent(HydroVisualViewModel vm)
-        {
-            this.FlowEffectPropertyValueChangedEvent?.Invoke(vm?.Vmo);
-        }
 
         #endregion
+
+
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3