lixiaojun
2025-01-07 db26311246d1c1cecadf4a22dc44ffa570ee40f2
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/SimulationPropertyCtrl.cs
@@ -22,10 +22,9 @@
            this.hydroVisualPropertyCtrl1.PropertyValueChangedEvent += HydroVisualPropertyCtrl1_PropertyValueChangedEvent;
            this.hydroVisualPropertyCtrl1.MarkPropertyValueChangedEvent += HydroVisualPropertyCtrl1_MarkPropertyValueChangedEvent;
            this.hydroVisualPropertyCtrl1.GradingPropertyValueChangedEvent += HydroPVisualPropertyCtrl1_GradingPropertyValueChangedEvent;
            this.hydroVisualPropertyCtrl1.FlowEffectPropertyValueChangedEvent += HydroVisualPropertyCtrl1_FlowEffectPropertyValueChangedEvent;
        }
        #region 事件集
        #region 事件集合
        /// <summary>
        /// 构件查看事件
@@ -54,12 +53,19 @@
        /// </summary>
        public event Action<HydroVisualInfo> GradingPropertyValueChangedEvent;
        /// <summary>
        /// 水流动画属性值改变事件
        /// </summary>
        public event Action<HydroVisualInfo> FlowEffectPropertyValueChangedEvent;
        #endregion
        #endregion 事件集
        /// <summary>
        /// 初始化数据
        /// </summary>
        public void InitialData
            (
                HydroChangeHelper changeHelper,
                HydroPropStatusHelper propStatusHelper
            )
        {
            this.hydroVisualPropertyCtrl1.InitialData(changeHelper, propStatusHelper);
        }
        #region 属性赋值
@@ -81,7 +87,12 @@
            set { this.hydroVisualPropertyCtrl1.SelectedObject = value; }
        }
        #endregion 属性赋值
        /// <summary>
        /// 计算结果
        /// </summary>
        public Func<HydroCalcuResult> CalcuResult { get; set; }
        #endregion
        #region 属性更新
@@ -115,7 +126,7 @@
            this.hydroVisualPropertyCtrl1.UpdateRows();
        }
        #endregion 属性更新
        #endregion
        #region 事件实现
@@ -168,7 +179,7 @@
                    {
                        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);
@@ -186,7 +197,7 @@
                    {
                        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);
@@ -204,7 +215,7 @@
                    {
                        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);
@@ -222,7 +233,7 @@
                    {
                        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);
@@ -294,7 +305,7 @@
                    {
                        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);
@@ -312,10 +323,28 @@
                    {
                        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);
                            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);
                            this.hydroVisualPropertyCtrl1.UpdateRows();
                            this.PropertyValueChangedEvent?.Invoke(vm.Vmo);
                            this.MarkPropertyValueChangedEvent?.Invoke(vm.Vmo);
@@ -330,7 +359,7 @@
                    {
                        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);
@@ -455,7 +484,7 @@
                            pumpViewModel.UpdateProperty();
                            this.hydroVisualPropertyCtrl1.UpdateRows();
                        };
                        dlg.SetBindingData(pumpViewModel);
                        dlg.SetBindingData(pumpViewModel, this.CalcuResult?.Invoke());
                        dlg.ShowDialog();
                    }
                    break;
@@ -512,7 +541,7 @@
            }
        }
        #endregion 事件实现
        #endregion
        #region 事件穿透
@@ -554,12 +583,9 @@
            this.GradingPropertyValueChangedEvent?.Invoke(vm?.Vmo);
        }
        //水流动画属性发生改变
        private void HydroVisualPropertyCtrl1_FlowEffectPropertyValueChangedEvent(HydroVisualViewModel vm)
        {
            this.FlowEffectPropertyValueChangedEvent?.Invoke(vm?.Vmo);
        }
        #endregion 事件穿透
        #endregion
    }
}