From 46f64905a3c309a50c0f245b3350cdeb8dd699c6 Mon Sep 17 00:00:00 2001
From: lixiaojun <1287241240@qq.com>
Date: 星期三, 22 一月 2025 17:29:02 +0800
Subject: [PATCH] 计算优化

---
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyCtrl.cs |  422 ++++++++++++++++++++++++++++++++++------------------
 1 files changed, 272 insertions(+), 150 deletions(-)

diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyCtrl.cs
index a490c8a..da2f1f2 100644
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyCtrl.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyCtrl.cs
@@ -4,7 +4,6 @@
 using DevExpress.XtraEditors.Repository;
 using DevExpress.XtraLayout.Utils;
 using DevExpress.XtraVerticalGrid.Events;
-using Yw.Model;
 
 namespace Yw.WinFrmUI
 {
@@ -42,10 +41,8 @@
         /// 鍒嗙骇灞炴�у�兼敼鍙樹簨浠�
         /// </summary>
         public event Action<HydroVisualViewModel> GradingPropertyValueChangedEvent;
-        /// <summary>
-        /// 姘存祦鍔ㄧ敾灞炴�у�兼敼鍙樹簨浠�
-        /// </summary>
-        public event Action<HydroVisualViewModel> FlowEffectPropertyValueChangedEvent;
+
+
         /// <summary>
         /// 寮鸿皟杩炴帴鑺傜偣浜嬩欢
         /// 绗竴涓弬鏁颁负鏈韩Code
@@ -57,6 +54,26 @@
         /// </summary>
         public event Action<HydroVisualViewModel> HydroViewEvent;
 
+        private HydroChangeHelper _changeHelper = null;//鏀瑰彉杈呭姪绫�
+        private HydroPropStatusHelper _propStatusHelper = null;//灞炴�х姸鎬佽緟鍔╃被
+
+        /// <summary>
+        /// 鍒濆鍖栨暟鎹�
+        /// </summary>
+        public void InitialData
+            (
+                HydroChangeHelper changeHelper,
+                HydroPropStatusHelper propStatusHelper
+            )
+        {
+            _changeHelper = changeHelper;
+            _propStatusHelper = propStatusHelper;
+        }
+
+        /// <summary>
+        /// 鍏佽淇敼
+        /// </summary>
+        public bool AllowEdit { get; set; }
 
         /// <summary>
         /// 缁戝畾瀵硅薄
@@ -70,21 +87,29 @@
             }
             set
             {
-                this.barBtnChangeLink.Visibility = value is HydroLinkViewModel ? BarItemVisibility.Always : BarItemVisibility.Never;
-                this.barBtnMatchingDb.Visibility = value == null ? BarItemVisibility.Never : BarItemVisibility.Always;
-                this.barBtnView.Visibility = value == null ? BarItemVisibility.Never : BarItemVisibility.Always;
-                if (value != null)
-                {
-                    if (value is HydroReservoirViewModel)
-                    {
-                        this.barBtnMatchingDb.Visibility = BarItemVisibility.Never;
-                    }
-                    else if (value is HydroJunctionViewModel)
-                    {
-                        this.barBtnMatchingDb.Visibility = BarItemVisibility.Never;
-                    }
-                }
-                this.propertyGridControl1.SelectedObject = value;
+                SetSelectedObject(value);
+            }
+        }
+
+        //璁剧疆閫夋嫨瀵硅薄
+        private void SetSelectedObject(HydroVisualViewModel vm)
+        {
+            if (this.AllowEdit)
+            {
+                this.barBtnChangeLink.Visibility = vm is HydroLinkViewModel ? BarItemVisibility.Always : BarItemVisibility.Never;
+                this.barBtnMatchingDb.Visibility = vm == null ? BarItemVisibility.Never : BarItemVisibility.Always;
+            }
+            else
+            {
+                this.barBtnMatchingDb.Visibility = BarItemVisibility.Never;
+                this.barBtnChangeLink.Visibility = BarItemVisibility.Never;
+            }
+            this.barBtnView.Visibility = vm == null ? BarItemVisibility.Never : BarItemVisibility.Always;
+            var selectObj = this.propertyGridControl1.SelectedObject as HydroVisualViewModel;
+            this.propertyGridControl1.SelectedObject = vm;
+            if (selectObj == vm)
+            {
+                this.propertyGridControl1.UpdateRows();
             }
         }
 
@@ -148,10 +173,17 @@
             {
                 return;
             }
+            var realFieldName = fieldName;
             //灞炴�ф弿杩板櫒
             var descriptor = this.propertyGridControl1.GetPropertyDescriptor(e.Row);
             if (descriptor != null)
             {
+                //鐪熷疄灞炴�у悕绉�
+                var realPropAttri = (HydroRealProAttribute)descriptor.Attributes[typeof(HydroRealProAttribute)];
+                if (realPropAttri != null)
+                {
+                    realFieldName = realPropAttri.RealPropName;
+                }
                 //鍚嶇О
                 var displayNameAttri = (DisplayNameAttribute)descriptor.Attributes[typeof(DisplayNameAttribute)];
                 if (displayNameAttri != null && !string.IsNullOrEmpty(displayNameAttri.DisplayName))
@@ -170,33 +202,10 @@
             var vm = GetPropertyViewModel(e.Row);
             if (vm != null)
             {
-                var propStatus = vm.GetPropStatus(fieldName);
-                if (propStatus != null)
+                var propStatusInfo = _propStatusHelper?.GetPropStatusInfo(vm.Code, realFieldName);
+                if (propStatusInfo != null)
                 {
-                    switch (propStatus.PropStatus)
-                    {
-                        case Yw.Hydro.ePropStatus.Error:
-                            {
-                                e.Appearance.ForeColor = Color.Red;
-                            }
-                            break;
-                        case Yw.Hydro.ePropStatus.Normal:
-                            {
-                                e.Appearance.ForeColor = Color.Black;
-                            }
-                            break;
-                        case Yw.Hydro.ePropStatus.Lack:
-                            {
-                                e.Appearance.ForeColor = Color.Green;
-                            }
-                            break;
-                        case Yw.Hydro.ePropStatus.Abnormal:
-                            {
-                                e.Appearance.ForeColor = Color.Orange;
-                            }
-                            break;
-                        default: break;
-                    }
+                    e.Appearance.ForeColor = HydroPropStatusColorHelper.GetColor(propStatusInfo.PropStatus);
                 }
             }
         }
@@ -217,8 +226,15 @@
             {
                 e.CellText = ((DateTime)e.Properties.Value).ToString("yyyy-MM-dd HH:mm:ss");
             }
+            else if (fullTypeName == typeof(string[]).FullName)
+            {
+                var stringValue = (string[])e.Properties.Value;
+                e.CellText = stringValue?.Length.ToString();
+            }
             else
             {
+
+
                 var descriptor = this.propertyGridControl1.GetPropertyDescriptor(e.Row);
                 if (descriptor != null)
                 {
@@ -256,10 +272,28 @@
             }
 
             var descriptor = this.propertyGridControl1.GetPropertyDescriptor(this.propertyGridControl1.FocusedRow);
-            var showEditor = (ShowEditorAttribute)descriptor.Attributes[typeof(ShowEditorAttribute)];
-            if (showEditor != null)
+
+            if (this.AllowEdit)
             {
-                if (!showEditor.ShowEditor)
+                var showEditor = (ShowEditorAttribute)descriptor.Attributes[typeof(ShowEditorAttribute)];
+                if (showEditor != null)
+                {
+                    if (!showEditor.ShowEditor)
+                    {
+                        e.Cancel = true;
+                        return;
+                    }
+                }
+            }
+            else
+            {
+                var showEditorInView = (ShowEditorInViewAttribute)descriptor.Attributes[typeof(ShowEditorInViewAttribute)];
+                if (showEditorInView == null)
+                {
+                    e.Cancel = true;
+                    return;
+                }
+                if (!showEditorInView.ShowEditor)
                 {
                     e.Cancel = true;
                     return;
@@ -300,15 +334,18 @@
 
             #region 瀵屾枃鏈�
 
-            var attri_multi = (MultiTextAttribute)descriptor.Attributes[typeof(MultiTextAttribute)];
-            if (attri_multi != null)
+            if (descriptor != null)
             {
-                var memoEdit = new RepositoryItemMemoEdit();
-                if (e.Row.Properties.ReadOnly == true)
+                var attri_multi = (MultiTextAttribute)descriptor.Attributes[typeof(MultiTextAttribute)];
+                if (attri_multi != null)
                 {
-                    memoEdit.ReadOnly = true;
+                    var memoEdit = new RepositoryItemMemoEdit();
+                    if (e.Row.Properties.ReadOnly == true)
+                    {
+                        memoEdit.ReadOnly = true;
+                    }
+                    e.RepositoryItem = memoEdit;
                 }
-                e.RepositoryItem = memoEdit;
             }
 
             #endregion
@@ -328,65 +365,87 @@
 
             #region 鏇茬嚎
 
-            var curvePropAttri = (HydroCurveProAttribute)descriptor.Attributes[typeof(HydroCurveProAttribute)];
-            if (curvePropAttri != null)
+            if (descriptor != null)
             {
-                var buttonEdit = new RepositoryItemButtonEdit();
-                buttonEdit.TextEditStyle = TextEditStyles.DisableTextEditor;
-                buttonEdit.ButtonClick += delegate
+                var curvePropAttri = (HydroCurveProAttribute)descriptor.Attributes[typeof(HydroCurveProAttribute)];
+                if (curvePropAttri != null)
                 {
-                    var vm = GetPropertyViewModel(e.Row);
-                    if (vm == null)
+                    var buttonEdit = new RepositoryItemButtonEdit();
+                    buttonEdit.TextEditStyle = TextEditStyles.DisableTextEditor;
+                    buttonEdit.ButtonClick += delegate
                     {
-                        return;
-                    }
-                    this.SetCurveEvent?.Invoke(vm, curvePropAttri.Curve, curvePropAttri.CurveType);
-                };
-                e.RepositoryItem = buttonEdit;
+                        var vm = GetPropertyViewModel(e.Row);
+                        if (vm == null)
+                        {
+                            return;
+                        }
+                        if (string.IsNullOrEmpty(curvePropAttri.CurveType))
+                        {
+                            this.SetCurveEvent?.Invoke(vm, curvePropAttri.Curve, curvePropAttri.CurveType);
+                        }
+                        else
+                        {
+                            if (e.Row.Properties.Value == null || string.IsNullOrEmpty(e.Row.Properties.Value.ToString()))
+                            {
+                                return;
+                            }
+                            this.radialMenu1.ShowPopup(MousePosition);
+                        }
+                    };
+                    e.RepositoryItem = buttonEdit;
+                }
             }
 
             #endregion
 
             #region 妯″紡
 
-            var patternProAttri = (HydroPatternProAttribute)descriptor.Attributes[typeof(HydroPatternProAttribute)];
-            if (patternProAttri != null)
+            if (descriptor != null)
             {
-                var buttonEdit = new RepositoryItemButtonEdit();
-                buttonEdit.TextEditStyle = TextEditStyles.DisableTextEditor;
-                buttonEdit.ButtonClick += delegate
+                var patternProAttri = (HydroPatternProAttribute)descriptor.Attributes[typeof(HydroPatternProAttribute)];
+                if (patternProAttri != null)
                 {
+                    var buttonEdit = new RepositoryItemButtonEdit();
+                    buttonEdit.TextEditStyle = TextEditStyles.DisableTextEditor;
+                    buttonEdit.ButtonClick += delegate
+                    {
 
-                };
-                e.RepositoryItem = buttonEdit;
+                    };
+                    e.RepositoryItem = buttonEdit;
+                }
             }
+
 
             #endregion
 
             #region 鏍囩
 
-            var flagsProAttri = (HydroFlagsProAttribute)descriptor.Attributes[typeof(HydroFlagsProAttribute)];
-            if (flagsProAttri != null)
+            if (descriptor != null)
             {
-                var buttonEdit = new RepositoryItemButtonEdit();
-                buttonEdit.TextEditStyle = TextEditStyles.DisableTextEditor;
-                buttonEdit.ButtonClick += async delegate
+                var flagsProAttri = (HydroFlagsProAttribute)descriptor.Attributes[typeof(HydroFlagsProAttribute)];
+                if (flagsProAttri != null)
                 {
-                    var vm = GetPropertyViewModel(e.Row);
-                    var flagVmoList = await BLLFactory<Yw.BLL.SysFlag>.Instance.GetBySysType(Yw.Hydro.DataType.HydroParter);
-                    var dbFlagList = flagVmoList?.Select(x => x.Name).Distinct().ToList();
-                    var dlg = new SetFlagsDlg();
-                    dlg.SetBindingData(dbFlagList, vm.Vmo.Flags);
-                    dlg.ReloadDataEvent += (flags) =>
+                    var buttonEdit = new RepositoryItemButtonEdit();
+                    buttonEdit.TextEditStyle = TextEditStyles.DisableTextEditor;
+                    buttonEdit.ButtonClick += async delegate
                     {
-                        vm.Vmo.Flags = flags;
-                        vm.Flags = Yw.Untity.FlagsHelper.ToString(flags);
-                        UpdateRows();
-                        this.PropertyValueChangedEvent?.Invoke(vm);
+                        var vm = GetPropertyViewModel(e.Row);
+                        var flagVmoList = await BLLFactory<Yw.BLL.SysFlag>.Instance.GetBySysType(Yw.Hydro.DataType.HydroParter);
+                        var dbFlagList = flagVmoList?.Select(x => x.Name).Distinct().ToList();
+                        var dlg = new SetFlagsDlg();
+                        dlg.SetBindingData(dbFlagList, vm.Vmo.Flags);
+                        dlg.ReloadDataEvent += (flags) =>
+                        {
+                            vm.Vmo.Flags = flags;
+                            vm.Flags = Yw.Untity.FlagsHelper.ToString(flags);
+                            this.propertyGridControl1.UpdateRows();
+                            this.propertyGridControl1.RefreshEditor();
+                            this.PropertyValueChangedEvent?.Invoke(vm);
+                        };
+                        dlg.ShowDialog();
                     };
-                    dlg.ShowDialog();
-                };
-                e.RepositoryItem = buttonEdit;
+                    e.RepositoryItem = buttonEdit;
+                }
             }
 
             #endregion
@@ -395,18 +454,21 @@
 
             if (e.Row.Properties.Value != null)
             {
-                var linkCodeAttri = (HydroLinkProAttribute)descriptor.Attributes[typeof(HydroLinkProAttribute)];
-                if (linkCodeAttri != null)
+                if (descriptor != null)
                 {
-                    var buttonEdit = new RepositoryItemButtonEdit();
-                    buttonEdit.TextEditStyle = TextEditStyles.DisableTextEditor;
-                    buttonEdit.ButtonClick += delegate
+                    var linkCodeAttri = (HydroLinkProAttribute)descriptor.Attributes[typeof(HydroLinkProAttribute)];
+                    if (linkCodeAttri != null)
                     {
-                        var vm = GetPropertyViewModel(e.Row);
-                        var vmLink = vm as HydroLinkViewModel;
-                        this.BlinkLinkNodeEvent?.Invoke(vmLink, e.Row.Properties.Value.ToString());
-                    };
-                    e.RepositoryItem = buttonEdit;
+                        var buttonEdit = new RepositoryItemButtonEdit();
+                        buttonEdit.TextEditStyle = TextEditStyles.DisableTextEditor;
+                        buttonEdit.ButtonClick += delegate
+                        {
+                            var vm = GetPropertyViewModel(e.Row);
+                            var vmLink = vm as HydroLinkViewModel;
+                            this.BlinkLinkNodeEvent?.Invoke(vmLink, e.Row.Properties.Value.ToString());
+                        };
+                        e.RepositoryItem = buttonEdit;
+                    }
                 }
             }
 
@@ -416,10 +478,6 @@
 
             if (vm is HydroValveViewModel valve)
             {
-                if (fieldName == nameof(HydroValveViewModel.ValveSetting))
-                {
-                    e.Row.Visible = false;
-                }
                 switch (valve.Vmo.ValveType)
                 {
                     case Yw.Hydro.ValveType.PSV:
@@ -432,11 +490,7 @@
                             {
                                 e.Row.Visible = false;
                             }
-                            if (fieldName == nameof(HydroValveViewModel.ValveOL))
-                            {
-                                e.Row.Visible = false;
-                            }
-                            if (fieldName == nameof(HydroValveViewModel.ValveQL))
+                            if (fieldName == nameof(HydroValveViewModel.ValveLength))
                             {
                                 e.Row.Visible = false;
                             }
@@ -452,11 +506,7 @@
                             {
                                 e.Row.Visible = false;
                             }
-                            if (fieldName == nameof(HydroValveViewModel.ValveOL))
-                            {
-                                e.Row.Visible = false;
-                            }
-                            if (fieldName == nameof(HydroValveViewModel.ValveQL))
+                            if (fieldName == nameof(HydroValveViewModel.ValveLength))
                             {
                                 e.Row.Visible = false;
                             }
@@ -472,11 +522,7 @@
                             {
                                 e.Row.Visible = false;
                             }
-                            if (fieldName == nameof(HydroValveViewModel.ValveOL))
-                            {
-                                e.Row.Visible = false;
-                            }
-                            if (fieldName == nameof(HydroValveViewModel.ValveQL))
+                            if (fieldName == nameof(HydroValveViewModel.ValveLength))
                             {
                                 e.Row.Visible = false;
                             }
@@ -492,11 +538,7 @@
                             {
                                 e.Row.Visible = true;
                             }
-                            if (fieldName == nameof(HydroValveViewModel.ValveOL))
-                            {
-                                e.Row.Visible = false;
-                            }
-                            if (fieldName == nameof(HydroValveViewModel.ValveQL))
+                            if (fieldName == nameof(HydroValveViewModel.ValveLength))
                             {
                                 e.Row.Visible = false;
                             }
@@ -512,11 +554,7 @@
                             {
                                 e.Row.Visible = false;
                             }
-                            if (fieldName == nameof(HydroValveViewModel.ValveOL))
-                            {
-                                e.Row.Visible = true;
-                            }
-                            if (fieldName == nameof(HydroValveViewModel.ValveQL))
+                            if (fieldName == nameof(HydroValveViewModel.ValveLength))
                             {
                                 e.Row.Visible = false;
                             }
@@ -532,13 +570,9 @@
                             {
                                 e.Row.Visible = false;
                             }
-                            if (fieldName == nameof(HydroValveViewModel.ValveOL))
+                            if (fieldName == nameof(HydroValveViewModel.ValveLength))
                             {
                                 e.Row.Visible = false;
-                            }
-                            if (fieldName == nameof(HydroValveViewModel.ValveQL))
-                            {
-                                e.Row.Visible = true;
                             }
                         }
                         break;
@@ -552,13 +586,9 @@
                             {
                                 e.Row.Visible = false;
                             }
-                            if (fieldName == nameof(HydroValveViewModel.ValveOL))
+                            if (fieldName == nameof(HydroValveViewModel.ValveLength))
                             {
-                                e.Row.Visible = false;
-                            }
-                            if (fieldName == nameof(HydroValveViewModel.ValveQL))
-                            {
-                                e.Row.Visible = false;
+                                e.Row.Visible = true;
                             }
                         }
                         break;
@@ -587,9 +617,18 @@
             }
             vm.UpdateVmoProperty();
             this.PropertyValueChangedEvent?.Invoke(vm);
+
+            var realFieldName = fieldName;
             var descriptor = this.propertyGridControl1.GetPropertyDescriptor(e.Row);
             if (descriptor != null)
             {
+                //鐪熷疄灞炴�у悕绉�
+                var realPropAttri = (HydroRealProAttribute)descriptor.Attributes[typeof(HydroRealProAttribute)];
+                if (realPropAttri != null)
+                {
+                    realFieldName = realPropAttri.RealPropName;
+                }
+
                 var hydroMarkPropAttri = descriptor.Attributes[typeof(HydroMarkProAttribute)];
                 if (hydroMarkPropAttri != null)
                 {
@@ -602,13 +641,10 @@
                     this.GradingPropertyValueChangedEvent?.Invoke(vm);
                 }
 
-                var hydroFlowDirectionPropAttri = descriptor.Attributes[typeof(HydroFlowDirectionProAttribute)];
-                if (hydroFlowDirectionPropAttri != null)
-                {
-                    this.FlowEffectPropertyValueChangedEvent?.Invoke(vm);
-                }
                 this.propertyGridControl1.UpdateRows();
             }
+            _changeHelper?.Append(vm.Vmo, eChangeType.Update);
+            _propStatusHelper?.UpdatePropStatus(vm.Code, realFieldName, Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}閫氳繃灞炴�ф帶浠朵慨鏀�");
         }
 
         //Db鍖归厤
@@ -625,6 +661,11 @@
         //鏀瑰彉杩炴帴鑺傜偣
         private void barBtnChangeLink_ItemClick(object sender, ItemClickEventArgs e)
         {
+            var result = XtraMessageBox.Show("鏄惁纭璋冩暣涓婁笅娓革紵", "璇㈤棶", MessageBoxButtons.YesNo) == DialogResult.Yes;
+            if (!result)
+            {
+                return;
+            }
             var link = this.SelectedObject as HydroLinkViewModel;
             if (link != null)
             {
@@ -632,6 +673,34 @@
                 link.StartCode = link.EndCode;
                 link.EndCode = tempCode;
                 link.UpdateVmoProperty();
+
+                _propStatusHelper?.UpdatePropStatus(link.Code, nameof(link.Vmo.StartCode), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}璋冩暣涓婁笅娓�");
+                _propStatusHelper?.UpdatePropStatus(link.Code, nameof(link.Vmo.EndCode), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}璋冩暣涓婁笅娓�");
+
+                var translation = this.SelectedObject as HydroTranslationViewModel;
+                if (translation != null)
+                {
+                    var tempDiameter = translation.StartDiameter;
+                    translation.StartDiameter = translation.EndDiameter;
+                    translation.EndDiameter = tempDiameter;
+                    translation.UpdateVmoProperty();
+                    _propStatusHelper?.UpdatePropStatus(translation.Code, nameof(translation.Vmo.StartDiameter), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}璋冩暣涓婁笅娓�");
+                    _propStatusHelper?.UpdatePropStatus(translation.Code, nameof(translation.Vmo.EndDiameter), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}璋冩暣涓婁笅娓�");
+                }
+
+                var pump = this.SelectedObject as HydroPumpViewModel;
+                if (pump != null)
+                {
+                    var tempDiameter = pump.InletDiameter;
+                    pump.InletDiameter = pump.OutletDiameter;
+                    pump.OutletDiameter = tempDiameter;
+                    pump.UpdateVmoProperty();
+                    _propStatusHelper?.UpdatePropStatus(pump.Code, nameof(pump.Vmo.InletDiameter), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}璋冩暣涓婁笅娓�");
+                    _propStatusHelper?.UpdatePropStatus(pump.Code, nameof(pump.Vmo.OutletDiameter), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}璋冩暣涓婁笅娓�");
+                }
+
+                _changeHelper?.Append(link.Vmo, eChangeType.Update);
+
                 this.propertyGridControl1.UpdateRows();
             }
         }
@@ -687,7 +756,7 @@
 
             string caption = string.Empty;
             string descrition = string.Empty;
-
+            string realFieldName = fieldName;
 
 
             //灞炴�ф弿杩板櫒
@@ -707,13 +776,66 @@
                 {
                     descrition = descritionAttri.Description;
                 }
+
+                //鐪熷疄灞炴�у悕绉�
+                var realPropAttri = (HydroRealProAttribute)descriptor.Attributes[typeof(HydroRealProAttribute)];
+                if (realPropAttri != null)
+                {
+                    realFieldName = realPropAttri.RealPropName;
+                }
             }
 
-            var propStatus = vm.GetPropStatus(fieldName);
-            this.hydroVisualPropertyDescriptionCtrl1.SetBindingData(caption, descrition, propStatus);
+            var propStatusInfo = _propStatusHelper?.GetPropStatusInfo(vm.Code, realFieldName);
+            this.hydroVisualPropertyDescriptionCtrl1.SetBindingData(caption, descrition, propStatusInfo);
 
         }
 
+        //鏌ョ湅鏇茬嚎
+        private void barBtnViewCurve_ItemClick(object sender, ItemClickEventArgs e)
+        {
+            var vm = this.SelectedObject;
+            if (vm == null)
+            {
+                return;
+            }
+            var row = this.propertyGridControl1.FocusedRow;
+            var code = row.Properties.Value?.ToString();
+            var curve = vm.HydroInfo.Curves?.Find(x => x.Code == code);
+            if (curve == null)
+            {
+                return;
+            }
+            var dlg = new HydroCurveViewDlg();
+            dlg.SetBindingData(curve);
+            dlg.ShowDialog();
+        }
+
+        //缂栬緫鏇茬嚎
+        private void barBtnEditCurve_ItemClick(object sender, ItemClickEventArgs e)
+        {
+            var vm = this.SelectedObject;
+            if (vm == null)
+            {
+                return;
+            }
+            var row = this.propertyGridControl1.FocusedRow;
+            var code = row.Properties.Value?.ToString();
+            var curve = vm.HydroInfo.Curves?.Find(x => x.Code == code);
+            if (curve == null)
+            {
+                return;
+            }
+            var dlg = new HydroCurveEditDlg();
+            dlg.ReloadDataEvent += (rhs) =>
+            {
+                _changeHelper?.Append(rhs, eChangeType.Update);
+            };
+            dlg.SetBindingData(curve);
+            dlg.ShowDialog();
+        }
+
+
+
 
     }
 }

--
Gitblit v1.9.3