lixiaojun
2025-03-12 3e2dd57ff0e7bddf72836d93208b53f0e3db22c4
WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/04-tree/SelectHydroGradingPropTreeCtrl.cs
@@ -1,5 +1,4 @@
using DevExpress.Utils;
using DevExpress.Utils.Extensions;
using DevExpress.Utils.Extensions;
namespace Yw.WinFrmUI
{
@@ -8,74 +7,64 @@
        public SelectHydroGradingPropTreeCtrl()
        {
            InitializeComponent();
            this.treeList1.InitialDefaultSettings();
            this.layoutControl1.SetupLayoutControl();
            //this.treeList1.SelectImageList = imgCollection16;
            //this.treeList1.SelectImageList = svgImg16;
            this.simpleTreeViewCtrl1.ToolBarVisible = false;
            this.simpleTreeViewCtrl1.CloseSearchControl();
            this.simpleTreeViewCtrl1.ShowTreeLines = true;
            this.simpleTreeViewCtrl1.FocusedChangedEvent += SimpleTreeViewCtrl1_FocusedChangedEvent;
        }
        /// <summary>
        /// 选择属性改变事件
        /// </summary>
        public event Action<HydroGradingPropTreeViewModel> SelectedPropChangedEvent;
        //所有绑定列表
        private List<HydroGradingPropTreeViewModel> _allBindingList = null;
        private Yw.Model.HydroModelInfo _hydro = null;//水力信息
        private List<HydroGradingPropTreeViewModel> _allBindingList = null;//所有绑定列表
        /// <summary>
        /// 初始化数据
        /// 绑定数据
        /// </summary>
        public void InitialData()
        public void SetBindingData(Yw.Model.HydroModelInfo hydro)
        {
            if (hydro == null)
            {
                return;
            }
            _hydro = hydro;
            _allBindingList = new List<HydroGradingPropTreeViewModel>();
            var dictCatalogList = HydroParterCatalogHelper.GetSimpleDict();
            dictCatalogList.ForEach(x =>
            var catalogDict = HydroGradingCatalogHelper.GetDict(hydro);
            catalogDict?.ForEach(x =>
            {
                _allBindingList.Add(new HydroGradingPropTreeViewModel(x.Key, x.Value));
                var dictPropList = HydroParterPropHelper.GetDict(x.Key);
                dictPropList.ForEach(t =>
                var propDict = HydroGradingPropHelper.GetNameDict(x.Key);
                propDict?.ForEach(t =>
                {
                    _allBindingList.Add(new HydroGradingPropTreeViewModel(x.Key, t.Key, t.Value));
                });
            });
            this.treeList1.DataSource = _allBindingList;
            this.treeList1.ForceInitialize();
            this.treeList1.ExpandAll();
        }
            var allTreeList = new List<SimpleTreeViewModel>();
            _allBindingList.ForEach(x =>
            {
                var treeModel = new SimpleTreeViewModel()
                {
                    Id = x.Id,
                    ParentId = x.ParentId,
                    Name = x.Name,
                    Tag = x
                };
                allTreeList.Add(treeModel);
            });
        //全部展开
        private void barBtnExpandAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            this.treeList1.ExpandAll();
        }
        //全部折叠
        private void barBtnCollpseAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            this.treeList1.CollapseAll();
        }
        //检索(menu)
        private void barBtnSearch_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (this.layoutControlItem1.Visibility == DevExpress.XtraLayout.Utils.LayoutVisibility.Always)
                this.layoutControlItem1.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
            else
                this.layoutControlItem1.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
        }
        //树线
        private void barCkTreeLine_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            this.treeList1.OptionsView.ShowTreeLines = this.barCkTreeLine.Checked ? DefaultBoolean.True : DefaultBoolean.False;
            this.simpleTreeViewCtrl1.SetBindingData(allTreeList);
            this.simpleTreeViewCtrl1.ExpandAll();
        }
        //聚焦节点改变
        private void treeList1_FocusedNodeChanged(object sender, DevExpress.XtraTreeList.FocusedNodeChangedEventArgs e)
        private void SimpleTreeViewCtrl1_FocusedChangedEvent(SimpleTreeViewModel obj)
        {
            var vm = this.treeList1.GetDataRecordByNode(e.Node) as HydroGradingPropTreeViewModel;
            var vm = obj?.Tag as HydroGradingPropTreeViewModel;
            this.SelectedPropChangedEvent?.Invoke(vm);
        }