duheng
2025-03-28 b266e82b9a377fa35a766f7a3a2f5aa95f3c9125
WinFrmUI/PBS.WinFrmUI.Hydro/99-map-view/propertyform.cs
@@ -1,10 +1,9 @@
using static Hydro.MapViewEnum;
using System.Data;
namespace Hydro
{
    public partial class PropertyForm : XtraUserControl
namespace HydroUI
{
    public partial class PropertyForm : UserControl
    {
        private IBaseViewModel _selectedObject;
        private MapObjectType _selectedType=  MapObjectType.全部;
@@ -44,7 +43,7 @@
        }
        public void SetObj(object o)
        {
            propertyGrid.SelectedObject = o;
            propertyGridControl1.SelectedObject = o;
            this.Text= o.GetType().Name;
        }
        public void SetObj(IBaseViewModel selectedObject)
@@ -58,54 +57,54 @@
                if (_selectedObject is JunctionViewModel junc)
                {
                    _selectedType = MapObjectType.节点;
                    propertyGrid.SelectedObjects = new JunctionViewModel[] { junc };
                    propertyGridControl1.SelectedObjects = new JunctionViewModel[] { junc };
                }
                else if (_selectedObject is ReservoirViewModel res)
                {
                    _selectedType = MapObjectType.水库;
                    propertyGrid.SelectedObjects = new ReservoirViewModel[] { res };
                    propertyGridControl1.SelectedObjects = new ReservoirViewModel[] { res };
                }
                else if (_selectedObject is TankViewModel tank)
                {
                    _selectedType = MapObjectType.水池;
                    propertyGrid.SelectedObjects = new TankViewModel[] { tank };
                    propertyGridControl1.SelectedObjects = new TankViewModel[] { tank };
                }
                else if (_selectedObject is PipeViewModel pipe)
                {
                    _selectedType = MapObjectType.管线;
                    propertyGrid.SelectedObjects = new PipeViewModel[] { pipe };
                    propertyGridControl1.SelectedObjects = new PipeViewModel[] { pipe };
                }
                else if (_selectedObject is ValveViewModel valve)
                {
                    _selectedType = MapObjectType.阀门;
                    propertyGrid.SelectedObjects = new ValveViewModel[] { valve };
                    propertyGridControl1.SelectedObjects = new ValveViewModel[] { valve };
                }
                else if (_selectedObject is RepeaterViewModel repeater)
                {
                    _selectedType = MapObjectType.重复器;
                    propertyGrid.SelectedObjects = new RepeaterViewModel[] { repeater };
                    propertyGridControl1.SelectedObjects = new RepeaterViewModel[] { repeater };
                }
                //水表
                else if (_selectedObject is MeterViewModel meter)
                {
                    _selectedType = MapObjectType.水表;
                    propertyGrid.SelectedObjects = new MeterViewModel[] { meter };
                    propertyGridControl1.SelectedObjects = new MeterViewModel[] { meter };
                }
                //水泵
                else if (_selectedObject is PumpViewModel pump)
                {
                    _selectedType = MapObjectType.水泵;
                    propertyGrid.SelectedObjects = new PumpViewModel[] { pump };
                    propertyGridControl1.SelectedObjects = new PumpViewModel[] { pump };
                }
                //喷头Nozzle
                else if (_selectedObject is NozzleViewModel nozzle)
                {
                    _selectedType = MapObjectType.喷头;
                    propertyGrid.SelectedObjects = new NozzleViewModel[] { nozzle };
                    propertyGridControl1.SelectedObjects = new NozzleViewModel[] { nozzle };
                } else
                {
                    _selectedType = MapObjectType.全部;
                    propertyGrid.SelectedObjects =new IBaseViewModel[] { selectedObject };
                    propertyGridControl1.SelectedObjects =new IBaseViewModel[] { selectedObject };
                }
                switch (_selectedType)
                {
@@ -180,6 +179,14 @@
        void RefreshListBox()
        {
            if (selectionSet == null) return;
            if (comboBox_type.Items.Count<1)
            {
                foreach (var item in Enum.GetValues(typeof(MapObjectType)))
                {
                    comboBox_type.Items.Add(item);
                }
                comboBox_type.SelectedIndex = 0;
            }
            string txt = comboBox_type.SelectedItem.ToString();
            MapObjectType selectedType = (MapObjectType)Enum.Parse(typeof(MapObjectType), txt);
            // 使用 LINQ 查询筛选选择集
@@ -263,7 +270,7 @@
        bool _isEnable = true;
        private static Dictionary<object, List<object>> _selectedObjectsDict = new Dictionary<object, List<object>>();
        private void propertyGrid_PropertyValueChanged(object s, PropertyValueChangedEventArgs e)
        private void propertyGridControl1_PropertyValueChanged(object s, PropertyValueChangedEventArgs e)
        {
            //foreach (var item in listBox1.SelectedItems)
            //{
@@ -316,7 +323,7 @@
            {
                return;
            }
            propertyGrid.SelectedObjects = objs;
            propertyGridControl1.SelectedObjects = objs;
@@ -410,7 +417,7 @@
                listBox1.SetSelected(i, true);
            }
            listBox1.SelectedIndexChanged += listBox1_SelectedIndexChanged;
            this.propertyGrid.SelectedObjects =selectionSet. CurrentSelectedObjects?.ToArray();
            this.propertyGridControl1.SelectedObjects =selectionSet. CurrentSelectedObjects?.ToArray();
            GlobalObject.map.selectedObjs.ForEach(o => o.Selected = false);
            if (selectionSet.CurrentSelectedObjects!=null)
            {
@@ -439,7 +446,7 @@
        }
    }
    /*public class SelectionSet
    public class SelectionSet
    {
        public string Name;
        public MapObjectType filterType=MapObjectType.全部;
@@ -523,7 +530,7 @@
        }
        
    }*/
    }