duheng
2025-03-28 feaaaf9d5eee7034b253aa804f123bfb16e79b28
修改首页列表显示
已删除3个文件
已修改7个文件
已添加4个文件
1331 ■■■■ 文件已修改
WinFrmUI/HStation.WinFrmUI.Assets.Core/12-package/02-main/EditAssetsPackageMainDlg.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/PBS.WinFrmUI/00-home/00-core/HomePbsProjectPage.Designer.cs 77 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/PBS.WinFrmUI/00-home/00-core/HomePbsProjectPage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/PBS.WinFrmUI/00-home/01-prjlist/XtraUserControl1.Designer.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/PBS.WinFrmUI/00-home/01-prjlist/XtraUserControl1.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/PBS.WinFrmUI/00-home/01-prjlist/XtraUserControl1.resx 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/PBS.WinFrmUI/00-home/01-project/HomePbsProjectTreeListCtrl.Designer.cs 335 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/PBS.WinFrmUI/00-home/01-project/HomePbsProjectTreeListCtrl.cs 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/PBS.WinFrmUI/00-home/01-project/HomePbsProjectTreeListCtrl.resx 270 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/PBS.WinFrmUI/00-home/01-project/HomePbsProjectTreeViewModel.cs 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/PBS.WinFrmUI/00-home/03-property/HomePbsProjectPropertyCtrl.Designer.cs 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/PBS.WinFrmUI/00-home/03-property/HomePbsProjectPropertyCtrl.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/PBS.WinFrmUI/00-home/03-property/HomePbsProjectPropertyCtrl.resx 74 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/PBS.WinFrmUI/PBS.WinFrmUI.csproj.user 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Assets.Core/12-package/02-main/EditAssetsPackageMainDlg.cs
@@ -25,7 +25,7 @@
            _allBindingList = new List<PumpAccountViewModel>();
            if (pumpList != null)
            {
                /*                var nameCountGroups = pumpList
                /*            var nameCountGroups = pumpList
                              .GroupBy(item => item.PumpMainID)
                              .Select(group => new { Name = group.Key, Count = group.Count() });
                */
WinFrmUI/PBS.WinFrmUI/00-home/00-core/HomePbsProjectPage.Designer.cs
@@ -37,14 +37,19 @@
            dockPanelFill = new DevExpress.XtraBars.Docking.DockPanel();
            controlContainer2 = new DevExpress.XtraBars.Docking.ControlContainer();
            mapViewProjectListContainer2 = new MapViewProjectListContainer();
            dockPanel2 = new DevExpress.XtraBars.Docking.DockPanel();
            dockPanel2_Container = new DevExpress.XtraBars.Docking.ControlContainer();
            homePbsProjectTreeListCtrl1 = new HomePbsProjectTreeListCtrl();
            dockPanelRight = new DevExpress.XtraBars.Docking.DockPanel();
            controlContainer1 = new DevExpress.XtraBars.Docking.ControlContainer();
            dockManager1 = new DevExpress.XtraBars.Docking.DockManager(components);
            homeXhsProjectPropertyCtrl2 = new HomePbsProjectPropertyCtrl();
            dockManager1 = new DevExpress.XtraBars.Docking.DockManager(components);
            ((ISupportInitialize)svgImg32).BeginInit();
            sidePanelBottom.SuspendLayout();
            dockPanelFill.SuspendLayout();
            controlContainer2.SuspendLayout();
            dockPanel2.SuspendLayout();
            dockPanel2_Container.SuspendLayout();
            dockPanelRight.SuspendLayout();
            controlContainer1.SuspendLayout();
            ((ISupportInitialize)dockManager1).BeginInit();
@@ -58,6 +63,7 @@
            // sidePanelBottom
            // 
            sidePanelBottom.Controls.Add(dockPanelFill);
            sidePanelBottom.Controls.Add(dockPanel2);
            sidePanelBottom.Controls.Add(dockPanelRight);
            sidePanelBottom.Dock = DockStyle.Fill;
            sidePanelBottom.Location = new Point(0, 0);
@@ -75,13 +81,14 @@
            dockPanelFill.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
            dockPanelFill.Controls.Add(controlContainer2);
            dockPanelFill.Dock = DevExpress.XtraBars.Docking.DockingStyle.Fill;
            dockPanelFill.FloatVertical = true;
            dockPanelFill.ID = new Guid("136389ea-6552-4166-8c2a-b2ffe8b01953");
            dockPanelFill.Location = new Point(0, 0);
            dockPanelFill.Location = new Point(200, 0);
            dockPanelFill.Margin = new Padding(2, 3, 2, 3);
            dockPanelFill.Name = "dockPanelFill";
            dockPanelFill.Options.ShowCloseButton = false;
            dockPanelFill.OriginalSize = new Size(645, 200);
            dockPanelFill.Size = new Size(977, 870);
            dockPanelFill.Size = new Size(777, 870);
            dockPanelFill.Text = "地图";
            // 
            // controlContainer2
@@ -90,7 +97,7 @@
            controlContainer2.Location = new Point(0, 28);
            controlContainer2.Margin = new Padding(2, 3, 2, 3);
            controlContainer2.Name = "controlContainer2";
            controlContainer2.Size = new Size(977, 842);
            controlContainer2.Size = new Size(777, 842);
            controlContainer2.TabIndex = 0;
            // 
            // mapViewProjectListContainer2
@@ -100,8 +107,37 @@
            mapViewProjectListContainer2.Margin = new Padding(4);
            mapViewProjectListContainer2.Name = "mapViewProjectListContainer2";
            mapViewProjectListContainer2.Padding = new Padding(1);
            mapViewProjectListContainer2.Size = new Size(977, 842);
            mapViewProjectListContainer2.TabIndex = 0;
            mapViewProjectListContainer2.Size = new Size(777, 842);
            mapViewProjectListContainer2.TabIndex = 1;
            //
            // dockPanel2
            //
            dockPanel2.Controls.Add(dockPanel2_Container);
            dockPanel2.Dock = DevExpress.XtraBars.Docking.DockingStyle.Left;
            dockPanel2.ID = new Guid("f7c7eb7a-c33e-4a48-b691-2ec4f4777ecf");
            dockPanel2.Location = new Point(0, 0);
            dockPanel2.Name = "dockPanel2";
            dockPanel2.Options.ShowCloseButton = false;
            dockPanel2.OriginalSize = new Size(200, 200);
            dockPanel2.Size = new Size(200, 870);
            dockPanel2.Text = "设施列表";
            //
            // dockPanel2_Container
            //
            dockPanel2_Container.Controls.Add(homePbsProjectTreeListCtrl1);
            dockPanel2_Container.Location = new Point(0, 28);
            dockPanel2_Container.Name = "dockPanel2_Container";
            dockPanel2_Container.Size = new Size(199, 842);
            dockPanel2_Container.TabIndex = 0;
            //
            // homePbsProjectTreeListCtrl1
            //
            homePbsProjectTreeListCtrl1.Dock = DockStyle.Fill;
            homePbsProjectTreeListCtrl1.Location = new Point(0, 0);
            homePbsProjectTreeListCtrl1.Margin = new Padding(3, 4, 3, 4);
            homePbsProjectTreeListCtrl1.Name = "homePbsProjectTreeListCtrl1";
            homePbsProjectTreeListCtrl1.Size = new Size(199, 842);
            homePbsProjectTreeListCtrl1.TabIndex = 0;
            // 
            // dockPanelRight
            // 
@@ -125,14 +161,6 @@
            controlContainer1.Size = new Size(237, 842);
            controlContainer1.TabIndex = 0;
            // 
            // dockManager1
            //
            dockManager1.DockingOptions.ShowAutoHideButton = false;
            dockManager1.Form = sidePanelBottom;
            dockManager1.RootPanels.AddRange(new DevExpress.XtraBars.Docking.DockPanel[] { dockPanelRight, dockPanelFill });
            dockManager1.Style = DevExpress.XtraBars.Docking2010.Views.DockingViewStyle.Light;
            dockManager1.TopZIndexControls.AddRange(new string[] { "DevExpress.XtraBars.BarDockControl", "DevExpress.XtraBars.StandaloneBarDockControl", "System.Windows.Forms.MenuStrip", "System.Windows.Forms.StatusStrip", "System.Windows.Forms.StatusBar", "DevExpress.XtraBars.Ribbon.RibbonStatusBar", "DevExpress.XtraBars.Ribbon.RibbonControl", "DevExpress.XtraBars.Navigation.OfficeNavigationBar", "DevExpress.XtraBars.Navigation.TileNavPane", "DevExpress.XtraBars.TabFormControl", "DevExpress.XtraBars.FluentDesignSystem.FluentDesignFormControl", "DevExpress.XtraBars.ToolbarForm.ToolbarFormControl" });
            //
            // homeXhsProjectPropertyCtrl2
            // 
            homeXhsProjectPropertyCtrl2.Dock = DockStyle.Fill;
@@ -143,7 +171,15 @@
            homeXhsProjectPropertyCtrl2.Size = new Size(237, 842);
            homeXhsProjectPropertyCtrl2.TabIndex = 0;
            // 
            // HomeXhsProjectPage
            // dockManager1
            //
            dockManager1.DockingOptions.ShowAutoHideButton = false;
            dockManager1.Form = sidePanelBottom;
            dockManager1.RootPanels.AddRange(new DevExpress.XtraBars.Docking.DockPanel[] { dockPanelRight, dockPanel2, dockPanelFill });
            dockManager1.Style = DevExpress.XtraBars.Docking2010.Views.DockingViewStyle.Light;
            dockManager1.TopZIndexControls.AddRange(new string[] { "DevExpress.XtraBars.BarDockControl", "DevExpress.XtraBars.StandaloneBarDockControl", "System.Windows.Forms.MenuStrip", "System.Windows.Forms.StatusStrip", "System.Windows.Forms.StatusBar", "DevExpress.XtraBars.Ribbon.RibbonStatusBar", "DevExpress.XtraBars.Ribbon.RibbonControl", "DevExpress.XtraBars.Navigation.OfficeNavigationBar", "DevExpress.XtraBars.Navigation.TileNavPane", "DevExpress.XtraBars.TabFormControl", "DevExpress.XtraBars.FluentDesignSystem.FluentDesignFormControl", "DevExpress.XtraBars.ToolbarForm.ToolbarFormControl" });
            //
            // HomePbsProjectPage
            // 
            Appearance.BackColor = SystemColors.Control;
            Appearance.Options.UseBackColor = true;
@@ -151,12 +187,14 @@
            AutoScaleMode = AutoScaleMode.Font;
            Controls.Add(sidePanelBottom);
            Margin = new Padding(5, 6, 5, 6);
            Name = "HomeXhsProjectPage";
            Name = "HomePbsProjectPage";
            Size = new Size(1215, 870);
            ((ISupportInitialize)svgImg32).EndInit();
            sidePanelBottom.ResumeLayout(false);
            dockPanelFill.ResumeLayout(false);
            controlContainer2.ResumeLayout(false);
            dockPanel2.ResumeLayout(false);
            dockPanel2_Container.ResumeLayout(false);
            dockPanelRight.ResumeLayout(false);
            controlContainer1.ResumeLayout(false);
            ((ISupportInitialize)dockManager1).EndInit();
@@ -164,14 +202,17 @@
        }
        #endregion
         private DevExpress.Utils.SvgImageCollection svgImg32;
        private DevExpress.Utils.SvgImageCollection svgImg32;
        private DevExpress.XtraEditors.SidePanel sidePanelBottom;
        private DevExpress.XtraBars.Docking.DockManager dockManager1;
        private DevExpress.XtraBars.Docking.DockPanel dockPanelRight;
        private DevExpress.XtraBars.Docking.ControlContainer controlContainer1;
        private DevExpress.XtraBars.Docking.DockPanel dockPanelFill;
        private DevExpress.XtraBars.Docking.ControlContainer controlContainer2;
        private MapViewProjectListContainer mapViewProjectListContainer2;
        private HomePbsProjectPropertyCtrl homeXhsProjectPropertyCtrl2;
        private MapViewProjectListContainer mapViewProjectListContainer2;
        private DevExpress.XtraBars.Docking.DockPanel dockPanel2;
        private DevExpress.XtraBars.Docking.ControlContainer dockPanel2_Container;
        private HomePbsProjectTreeListCtrl homePbsProjectTreeListCtrl1;
    }
}
WinFrmUI/PBS.WinFrmUI/00-home/00-core/HomePbsProjectPage.cs
@@ -14,7 +14,7 @@
            this.PageTitle.SvgImageSize = new Size(24, 24);
            //   this.xhsProjectHomeTitleCtrl1.JumpEvent += XhsProjectHomeTitleCtrl1_JumpEvent;
            this.mapViewProjectListContainer2.LoadCompletedEvent += MapViewProjectListContainer1_LoadCompletedEvent;
            this.homeXhsProjectPropertyCtrl2.SelectProjectEvent += homeXhsProjectTreeListCtrl1_SelectProjectEvent;
            this.homePbsProjectTreeListCtrl1.SelectProjectEvent += homeXhsProjectTreeListCtrl1_SelectProjectEvent;
        }
        private List<FacilityVmo> _allProjectList = null;//所有项目列表
WinFrmUI/PBS.WinFrmUI/00-home/01-prjlist/XtraUserControl1.Designer.cs
ÎļþÒÑɾ³ý
WinFrmUI/PBS.WinFrmUI/00-home/01-prjlist/XtraUserControl1.cs
ÎļþÒÑɾ³ý
WinFrmUI/PBS.WinFrmUI/00-home/01-prjlist/XtraUserControl1.resx
ÎļþÒÑɾ³ý
WinFrmUI/PBS.WinFrmUI/00-home/01-project/HomePbsProjectTreeListCtrl.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,335 @@
using DevExpress.XtraEditors;
using DevExpress.XtraEditors.Controls;
using System.ComponentModel;
namespace PBS.WinFrmUI
{
    partial class HomePbsProjectTreeListCtrl
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }
        #region Component Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            components = new Container();
            ComponentResourceManager resources = new ComponentResourceManager(typeof(HomePbsProjectTreeListCtrl));
            DevExpress.Utils.SuperToolTip superToolTip1 = new DevExpress.Utils.SuperToolTip();
            DevExpress.Utils.ToolTipItem toolTipItem1 = new DevExpress.Utils.ToolTipItem();
            EditorButtonImageOptions editorButtonImageOptions1 = new EditorButtonImageOptions();
            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject1 = new DevExpress.Utils.SerializableAppearanceObject();
            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject2 = new DevExpress.Utils.SerializableAppearanceObject();
            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject3 = new DevExpress.Utils.SerializableAppearanceObject();
            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject4 = new DevExpress.Utils.SerializableAppearanceObject();
            layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
            treeList1 = new DevExpress.XtraTreeList.TreeList();
            colName = new DevExpress.XtraTreeList.Columns.TreeListColumn();
            barManager1 = new DevExpress.XtraBars.BarManager(components);
            bar1 = new DevExpress.XtraBars.Bar();
            barBtnExpandAll = new DevExpress.XtraBars.BarButtonItem();
            barBtnCollpseAll = new DevExpress.XtraBars.BarButtonItem();
            barBtnSearchBox = new DevExpress.XtraBars.BarButtonItem();
            barCkTreeLine = new DevExpress.XtraBars.BarCheckItem();
            barBtnRefresh = new DevExpress.XtraBars.BarButtonItem();
            barDockControlTop = new DevExpress.XtraBars.BarDockControl();
            barDockControlBottom = new DevExpress.XtraBars.BarDockControl();
            barDockControlLeft = new DevExpress.XtraBars.BarDockControl();
            barDockControlRight = new DevExpress.XtraBars.BarDockControl();
            repositoryItemButtonEdit1 = new DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit();
            searchControl1 = new SearchControl();
            Root = new DevExpress.XtraLayout.LayoutControlGroup();
            layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
            layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
            imageCollection1 = new DevExpress.Utils.ImageCollection(components);
            ((ISupportInitialize)layoutControl1).BeginInit();
            layoutControl1.SuspendLayout();
            ((ISupportInitialize)treeList1).BeginInit();
            ((ISupportInitialize)barManager1).BeginInit();
            ((ISupportInitialize)repositoryItemButtonEdit1).BeginInit();
            ((ISupportInitialize)searchControl1.Properties).BeginInit();
            ((ISupportInitialize)Root).BeginInit();
            ((ISupportInitialize)layoutControlItem1).BeginInit();
            ((ISupportInitialize)layoutControlItem2).BeginInit();
            ((ISupportInitialize)imageCollection1).BeginInit();
            SuspendLayout();
            //
            // layoutControl1
            //
            layoutControl1.Controls.Add(treeList1);
            layoutControl1.Controls.Add(searchControl1);
            layoutControl1.Dock = DockStyle.Fill;
            layoutControl1.Location = new Point(0, 30);
            layoutControl1.Margin = new Padding(3, 4, 3, 4);
            layoutControl1.Name = "layoutControl1";
            layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(539, 371, 650, 400);
            layoutControl1.Root = Root;
            layoutControl1.Size = new Size(269, 819);
            layoutControl1.TabIndex = 0;
            layoutControl1.Text = "layoutControl1";
            //
            // treeList1
            //
            treeList1.Columns.AddRange(new DevExpress.XtraTreeList.Columns.TreeListColumn[] { colName });
            treeList1.Location = new Point(0, 29);
            treeList1.Margin = new Padding(3, 4, 3, 4);
            treeList1.MenuManager = barManager1;
            treeList1.MinWidth = 23;
            treeList1.Name = "treeList1";
            treeList1.OptionsMenu.EnableNodeMenu = false;
            treeList1.OptionsSelection.EnableAppearanceFocusedCell = false;
            treeList1.OptionsView.FocusRectStyle = DevExpress.XtraTreeList.DrawFocusRectStyle.None;
            treeList1.OptionsView.RowImagesShowMode = DevExpress.XtraTreeList.RowImagesShowMode.InIndent;
            treeList1.OptionsView.ShowIndentAsRowStyle = true;
            treeList1.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { repositoryItemButtonEdit1 });
            treeList1.Size = new Size(269, 789);
            treeList1.TabIndex = 5;
            treeList1.TreeLevelWidth = 21;
            treeList1.TreeViewFieldName = "Name";
            treeList1.ViewStyle = DevExpress.XtraTreeList.TreeListViewStyle.TreeView;
            treeList1.FocusedNodeChanged += treeList1_FocusedNodeChanged;
            treeList1.DoubleClick += treeList1_DoubleClick;
            //
            // colName
            //
            colName.AppearanceCell.Options.UseTextOptions = true;
            colName.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near;
            colName.Caption = "名称";
            colName.FieldName = "Name";
            colName.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("colName.ImageOptions.SvgImage");
            colName.MinWidth = 23;
            colName.Name = "colName";
            colName.Visible = true;
            colName.VisibleIndex = 0;
            colName.Width = 197;
            //
            // barManager1
            //
            barManager1.Bars.AddRange(new DevExpress.XtraBars.Bar[] { bar1 });
            barManager1.DockControls.Add(barDockControlTop);
            barManager1.DockControls.Add(barDockControlBottom);
            barManager1.DockControls.Add(barDockControlLeft);
            barManager1.DockControls.Add(barDockControlRight);
            barManager1.Form = this;
            barManager1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { barBtnExpandAll, barBtnCollpseAll, barBtnSearchBox, barCkTreeLine, barBtnRefresh });
            barManager1.MaxItemId = 6;
            //
            // bar1
            //
            bar1.BarName = "Custom 1";
            bar1.CanDockStyle = DevExpress.XtraBars.BarCanDockStyle.Top;
            bar1.DockCol = 0;
            bar1.DockRow = 0;
            bar1.DockStyle = DevExpress.XtraBars.BarDockStyle.Top;
            bar1.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(barBtnExpandAll), new DevExpress.XtraBars.LinkPersistInfo(barBtnCollpseAll), new DevExpress.XtraBars.LinkPersistInfo(barBtnSearchBox), new DevExpress.XtraBars.LinkPersistInfo(barCkTreeLine), new DevExpress.XtraBars.LinkPersistInfo(barBtnRefresh) });
            bar1.OptionsBar.AllowQuickCustomization = false;
            bar1.OptionsBar.DrawDragBorder = false;
            bar1.OptionsBar.MultiLine = true;
            bar1.OptionsBar.UseWholeRow = true;
            bar1.Text = "Custom 1";
            //
            // barBtnExpandAll
            //
            barBtnExpandAll.Caption = "展开";
            barBtnExpandAll.Id = 0;
            barBtnExpandAll.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnExpandAll.ImageOptions.SvgImage");
            barBtnExpandAll.Name = "barBtnExpandAll";
            barBtnExpandAll.ItemClick += barBtnExpandAll_ItemClick;
            //
            // barBtnCollpseAll
            //
            barBtnCollpseAll.Caption = "折叠";
            barBtnCollpseAll.Id = 1;
            barBtnCollpseAll.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnCollpseAll.ImageOptions.SvgImage");
            barBtnCollpseAll.Name = "barBtnCollpseAll";
            barBtnCollpseAll.ItemClick += barBtnCollpseAll_ItemClick;
            //
            // barBtnSearchBox
            //
            barBtnSearchBox.Caption = "搜索";
            barBtnSearchBox.Id = 2;
            barBtnSearchBox.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnSearchBox.ImageOptions.SvgImage");
            barBtnSearchBox.Name = "barBtnSearchBox";
            barBtnSearchBox.ItemClick += barBtnSearch_ItemClick;
            //
            // barCkTreeLine
            //
            barCkTreeLine.Caption = "树线";
            barCkTreeLine.Id = 4;
            barCkTreeLine.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barCkTreeLine.ImageOptions.SvgImage");
            barCkTreeLine.Name = "barCkTreeLine";
            barCkTreeLine.CheckedChanged += barCkTreeLine_CheckedChanged;
            //
            // barBtnRefresh
            //
            barBtnRefresh.Caption = "刷新";
            barBtnRefresh.Id = 5;
            barBtnRefresh.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnRefresh.ImageOptions.SvgImage");
            barBtnRefresh.Name = "barBtnRefresh";
            toolTipItem1.Text = "刷新";
            superToolTip1.Items.Add(toolTipItem1);
            barBtnRefresh.SuperTip = superToolTip1;
            barBtnRefresh.ItemClick += barBtnRefresh_ItemClick;
            //
            // barDockControlTop
            //
            barDockControlTop.CausesValidation = false;
            barDockControlTop.Dock = DockStyle.Top;
            barDockControlTop.Location = new Point(0, 0);
            barDockControlTop.Manager = barManager1;
            barDockControlTop.Margin = new Padding(3, 4, 3, 4);
            barDockControlTop.Size = new Size(269, 30);
            //
            // barDockControlBottom
            //
            barDockControlBottom.CausesValidation = false;
            barDockControlBottom.Dock = DockStyle.Bottom;
            barDockControlBottom.Location = new Point(0, 849);
            barDockControlBottom.Manager = barManager1;
            barDockControlBottom.Margin = new Padding(3, 4, 3, 4);
            barDockControlBottom.Size = new Size(269, 0);
            //
            // barDockControlLeft
            //
            barDockControlLeft.CausesValidation = false;
            barDockControlLeft.Dock = DockStyle.Left;
            barDockControlLeft.Location = new Point(0, 30);
            barDockControlLeft.Manager = barManager1;
            barDockControlLeft.Margin = new Padding(3, 4, 3, 4);
            barDockControlLeft.Size = new Size(0, 819);
            //
            // barDockControlRight
            //
            barDockControlRight.CausesValidation = false;
            barDockControlRight.Dock = DockStyle.Right;
            barDockControlRight.Location = new Point(269, 30);
            barDockControlRight.Manager = barManager1;
            barDockControlRight.Margin = new Padding(3, 4, 3, 4);
            barDockControlRight.Size = new Size(0, 819);
            //
            // repositoryItemButtonEdit1
            //
            repositoryItemButtonEdit1.AutoHeight = false;
            editorButtonImageOptions1.SvgImageSize = new Size(20, 20);
            repositoryItemButtonEdit1.Buttons.AddRange(new EditorButton[] { new EditorButton(ButtonPredefines.Glyph, "", -1, true, true, false, editorButtonImageOptions1, new DevExpress.Utils.KeyShortcut(Keys.None), serializableAppearanceObject1, serializableAppearanceObject2, serializableAppearanceObject3, serializableAppearanceObject4, "", null, null, DevExpress.Utils.ToolTipAnchor.Default) });
            repositoryItemButtonEdit1.Name = "repositoryItemButtonEdit1";
            repositoryItemButtonEdit1.TextEditStyle = TextEditStyles.HideTextEditor;
            //
            // searchControl1
            //
            searchControl1.Client = treeList1;
            searchControl1.Location = new Point(0, 3);
            searchControl1.Margin = new Padding(3, 4, 3, 4);
            searchControl1.MenuManager = barManager1;
            searchControl1.Name = "searchControl1";
            searchControl1.Properties.Buttons.AddRange(new EditorButton[] { new DevExpress.XtraEditors.Repository.ClearButton(), new DevExpress.XtraEditors.Repository.SearchButton() });
            searchControl1.Properties.Client = treeList1;
            searchControl1.Size = new Size(269, 24);
            searchControl1.StyleController = layoutControl1;
            searchControl1.TabIndex = 4;
            //
            // Root
            //
            Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
            Root.GroupBordersVisible = false;
            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1, layoutControlItem2 });
            Root.Name = "Root";
            Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            Root.Size = new Size(269, 819);
            Root.TextVisible = false;
            //
            // layoutControlItem1
            //
            layoutControlItem1.Control = searchControl1;
            layoutControlItem1.Location = new Point(0, 0);
            layoutControlItem1.Name = "layoutControlItem1";
            layoutControlItem1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 3, 1);
            layoutControlItem1.Size = new Size(269, 28);
            layoutControlItem1.TextSize = new Size(0, 0);
            layoutControlItem1.TextVisible = false;
            //
            // layoutControlItem2
            //
            layoutControlItem2.Control = treeList1;
            layoutControlItem2.Location = new Point(0, 28);
            layoutControlItem2.Name = "layoutControlItem2";
            layoutControlItem2.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 1, 1);
            layoutControlItem2.Size = new Size(269, 791);
            layoutControlItem2.TextSize = new Size(0, 0);
            layoutControlItem2.TextVisible = false;
            //
            // imageCollection1
            //
            imageCollection1.ImageStream = (DevExpress.Utils.ImageCollectionStreamer)resources.GetObject("imageCollection1.ImageStream");
            imageCollection1.Images.SetKeyName(0, "NotImported.png");
            imageCollection1.Images.SetKeyName(1, "Imported.png");
            //
            // HomePbsProjectTreeListCtrl
            //
            AutoScaleDimensions = new SizeF(8F, 18F);
            AutoScaleMode = AutoScaleMode.Font;
            Controls.Add(layoutControl1);
            Controls.Add(barDockControlLeft);
            Controls.Add(barDockControlRight);
            Controls.Add(barDockControlBottom);
            Controls.Add(barDockControlTop);
            Margin = new Padding(3, 4, 3, 4);
            Name = "HomePbsProjectTreeListCtrl";
            Size = new Size(269, 849);
            ((ISupportInitialize)layoutControl1).EndInit();
            layoutControl1.ResumeLayout(false);
            ((ISupportInitialize)treeList1).EndInit();
            ((ISupportInitialize)barManager1).EndInit();
            ((ISupportInitialize)repositoryItemButtonEdit1).EndInit();
            ((ISupportInitialize)searchControl1.Properties).EndInit();
            ((ISupportInitialize)Root).EndInit();
            ((ISupportInitialize)layoutControlItem1).EndInit();
            ((ISupportInitialize)layoutControlItem2).EndInit();
            ((ISupportInitialize)imageCollection1).EndInit();
            ResumeLayout(false);
            PerformLayout();
        }
        #endregion
        private DevExpress.XtraLayout.LayoutControl layoutControl1;
        private DevExpress.XtraLayout.LayoutControlGroup Root;
        private DevExpress.XtraBars.BarManager barManager1;
        private DevExpress.XtraBars.Bar bar1;
        private DevExpress.XtraBars.BarButtonItem barBtnExpandAll;
        private DevExpress.XtraBars.BarDockControl barDockControlTop;
        private DevExpress.XtraBars.BarDockControl barDockControlBottom;
        private DevExpress.XtraBars.BarDockControl barDockControlLeft;
        private DevExpress.XtraBars.BarDockControl barDockControlRight;
        private DevExpress.XtraEditors.SearchControl searchControl1;
        private DevExpress.XtraBars.BarButtonItem barBtnCollpseAll;
        private DevExpress.XtraBars.BarButtonItem barBtnSearchBox;
        private DevExpress.XtraBars.BarCheckItem barCkTreeLine;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
        private DevExpress.XtraTreeList.TreeList treeList1;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
        private DevExpress.XtraTreeList.Columns.TreeListColumn colName;
        private DevExpress.XtraBars.BarButtonItem barBtnRefresh;
        private DevExpress.Utils.ImageCollection imageCollection1;
        private DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit repositoryItemButtonEdit1;
    }
}
WinFrmUI/PBS.WinFrmUI/00-home/01-project/HomePbsProjectTreeListCtrl.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,129 @@
using DevExpress.Utils;
using DevExpress.XtraEditors.Controls;
using Yw.WinFrmUI;
namespace PBS.WinFrmUI
{
    public partial class HomePbsProjectTreeListCtrl : DevExpress.XtraEditors.XtraUserControl
    {
        public HomePbsProjectTreeListCtrl()
        {
            InitializeComponent();
            this.treeList1.InitialDefaultSettings();
            this.treeList1.BorderStyle = BorderStyles.NoBorder;
            this.layoutControl1.SetupLayoutControl();
            this.SetBindingData();
        }
        /// <summary>
        /// é€‰æ‹©é¡¹ç›®äº‹ä»¶
        /// </summary>
        public event Action<Vmo.FacilityVmo> SelectProjectEvent;
        /// <summary>
        /// åˆ·æ–°æ•°æ®äº‹ä»¶
        /// </summary>
        public event Action RefreshDataEvent;
        private List<HomePbsProjectTreeViewModel> _allBindingList = new();
        /// <summary>
        /// ç»‘定数据
        /// </summary>
        public async void SetBindingData()
        {
            var allList = await new BLL.Facility().GetAll();
            _allBindingList = new List<HomePbsProjectTreeViewModel>();
            if (allList != null)
            {
                foreach (var item in allList)
                {
                    var vm = new HomePbsProjectTreeViewModel(item);
                    _allBindingList.Add(vm);
                }
            }
            this.treeList1.DataSource = _allBindingList;
            this.treeList1.ForceInitialize();
            this.treeList1.ExpandAll();
        }
        /// <summary>
        /// è®¾ç½®é»˜è®¤
        /// </summary>
        public void SetFocused()
        {
            if (_allBindingList == null)
            {
                return;
            }
            var vm = _allBindingList.FirstOrDefault();
            if (vm != null)
            {
                this.treeList1.FocusedNode = this.treeList1.FindNodeByKeyID(vm.ID);
            }
        }
        /// <summary>
        /// è®¾ç½®èšç„¦
        /// </summary>
        public void SetFocused(long ID)
        {
            if (_allBindingList == null)
            {
                return;
            }
            this.treeList1.FocusedNode = this.treeList1.FindNodeByKeyID(ID);
        }
        //全部展开
        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;
        }
        //聚焦节点改变
        private void treeList1_FocusedNodeChanged(object sender, DevExpress.XtraTreeList.FocusedNodeChangedEventArgs e)
        {
            var vm = this.treeList1.GetDataRecordByNode(e.Node) as HomePbsProjectTreeViewModel;
            this.SelectProjectEvent?.Invoke(vm.Project);
        }
        //刷新
        private void barBtnRefresh_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            this.RefreshDataEvent?.Invoke();
        }
        //双击事件
        private void treeList1_DoubleClick(object sender, EventArgs e)
        {
            /*  var vm = this.treeList1.GetCurrentViewModel(_allBindingList);
              if (vm == null)
              {
                  return;
              }
              JumpDirectEvent.Invoke(vm.Project.ID);*/
        }
    }
}
WinFrmUI/PBS.WinFrmUI/00-home/01-project/HomePbsProjectTreeListCtrl.resx
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,270 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema
    Version 2.0
    The primary goals of this format is to allow a simple XML format
    that is mostly human readable. The generation and parsing of the
    various data types are done through the TypeConverter classes
    associated with the data types.
    Example:
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
    There are any number of "resheader" rows that contain simple
    name/value pairs.
    Each data row contains a name, and value. The row also contains a
    type or mimetype. Type corresponds to a .NET class that support
    text/value conversion through the TypeConverter architecture.
    Classes that don't support this are serialized and stored with the
    mimetype set.
    The mimetype is used for serialized objects, and tells the
    ResXResourceReader how to depersist the object. This is currently not
    extensible. For a given mimetype the value must be set accordingly:
    Note - application/x-microsoft.net.object.binary.base64 is the format
    that the ResXResourceWriter will generate, however the reader can
    read any of the formats listed below.
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <assembly alias="DevExpress.Data.v23.2" name="DevExpress.Data.v23.2, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
  <data name="colName.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAOMCAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTmV3VGFibGVTdHlsZSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5l
        dyAwIDAgMzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3
        O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJLnN0MHtvcGFj
        aXR5OjAuNTt9Cjwvc3R5bGU+DQogIDxnIGNsYXNzPSJzdDAiPg0KICAgIDxwYXRoIGQ9Ik0wLDIwaDh2
        NkgwVjIweiBNMTAsMjZoOHYtNmgtOFYyNnogTTIwLDEydjZoOHYtNkgyMHogTTIwLDI2aDh2LTZoLThW
        MjZ6IiBjbGFzcz0iQmxhY2siIC8+DQogIDwvZz4NCiAgPHBhdGggZD0iTTAsNGg4djZIMFY0eiBNMCwx
        OGg4di02SDBWMTh6IE0xMCwxMGg4VjRoLThWMTB6IE0xMCwxOGg4di02aC04VjE4eiIgY2xhc3M9IkJs
        dWUiIC8+DQogIDxwb2x5Z29uIHBvaW50cz0iMjUsMiAyNywwIDI3LDMgMzAsMyAyOCw1IDMwLDcgMjcs
        NyAyNywxMCAyNSw4IDIzLDEwIDIzLDcgMjAsNyAyMiw1IDIwLDMgMjMsMyAyMywwICIgY2xhc3M9Illl
        bGxvdyIgLz4NCjwvc3ZnPgs=
</value>
  </data>
  <metadata name="barManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>17, 17</value>
  </metadata>
  <data name="barBtnExpandAll.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALACAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iRXhwYW5kX0ZpZWxkIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3
        IDAgMCAzMiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkuQmxhY2t7ZmlsbDojNzI3Mjcy
        O30KCS5HcmVlbntmaWxsOiMwMzlDMjM7fQoJLnN0MHtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8
        cG9seWdvbiBwb2ludHM9IjE0LDYgMTAsNiAxMCwyIDYsMiA2LDYgMiw2IDIsMTAgNiwxMCA2LDE0IDEw
        LDE0IDEwLDEwIDE0LDEwICIgY2xhc3M9IkdyZWVuIiAvPg0KICA8ZyBjbGFzcz0ic3QwIj4NCiAgICA8
        cGF0aCBkPSJNMjIsNmgxMHYySDIyVjZ6IE0yMiwxMmgxMHYtMkgyMlYxMnogTTIyLDIwaDEwdi0ySDIy
        VjIweiBNMjIsMjRoMTB2LTJIMjJWMjR6IiBjbGFzcz0iQmxhY2siIC8+DQogIDwvZz4NCiAgPHBhdGgg
        ZD0iTTE4LDJoMTR2MkgxOFYyeiBNMTgsMTZoMTR2LTJIMThWMTZ6IE0xOCwyOGgxNHYtMkgxOFYyOHoi
        IGNsYXNzPSJCbGFjayIgLz4NCjwvc3ZnPgs=
</value>
  </data>
  <data name="barBtnCollpseAll.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAIcCAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iQ29sbGFwc2VfRmllbGQiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpu
        ZXcgMCAwIDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5CbGFja3tmaWxsOiM3Mjcy
        NzI7fQoJLlJlZHtmaWxsOiNEMTFDMUM7fQoJLnN0MHtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8
        cmVjdCB4PSIyIiB5PSI2IiB3aWR0aD0iMTIiIGhlaWdodD0iNCIgY2xhc3M9IlJlZCIgLz4NCiAgPGcg
        Y2xhc3M9InN0MCI+DQogICAgPHBhdGggZD0iTTIyLDZoMTB2MkgyMlY2eiBNMjIsMTJoMTB2LTJIMjJW
        MTJ6IE0yMiwyMGgxMHYtMkgyMlYyMHogTTIyLDI0aDEwdi0ySDIyVjI0eiIgY2xhc3M9IkJsYWNrIiAv
        Pg0KICA8L2c+DQogIDxwYXRoIGQ9Ik0xOCwyaDE0djJIMThWMnogTTE4LDE2aDE0di0ySDE4VjE2eiBN
        MTgsMjhoMTR2LTJIMThWMjh6IiBjbGFzcz0iQmxhY2siIC8+DQo8L3N2Zz4L
</value>
  </data>
  <data name="barBtnSearchBox.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAANoCAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
        ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz
        OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp
        dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9Ilpvb20iPg0KICAgIDxwYXRoIGQ9Ik0yNy43LDI1LjNM
        MjAuNSwxOGMxLTEuNCwxLjUtMy4yLDEuNS01YzAtNS00LTktOS05cy05LDQtOSw5YzAsNSw0LDksOSw5
        YzEuOSwwLDMuNi0wLjYsNS0xLjVsNy4zLDcuMyAgIGMwLjMsMC4zLDAuOSwwLjMsMS4yLDBsMS4yLTEu
        MkMyOC4xLDI2LjIsMjguMSwyNS42LDI3LjcsMjUuM3ogTTYsMTNjMC0zLjksMy4xLTcsNy03czcsMy4x
        LDcsN2MwLDMuOS0zLjEsNy03LDdTNiwxNi45LDYsMTN6IiBjbGFzcz0iQmxhY2siIC8+DQogIDwvZz4N
        Cjwvc3ZnPgs=
</value>
  </data>
  <data name="barCkTreeLine.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAIkDAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkdyZWVue2ZpbGw6IzAzOUMyMzt9Cgku
        QmxhY2t7ZmlsbDojNzI3MjcyO30KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5ZZWxsb3d7ZmlsbDojRkZC
        MTE1O30KCS5CbHVle2ZpbGw6IzExNzdENzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
        Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8ZyBpZD0iSW5zZXJ0VHJl
        ZVZpZXciPg0KICAgIDxwYXRoIGQ9Ik0xMyw4SDVDNC40LDgsNCw3LjYsNCw3VjNjMC0wLjUsMC40LTEs
        MS0xaDhjMC42LDAsMSwwLjUsMSwxdjRDMTQsNy42LDEzLjYsOCwxMyw4eiBNMjYsMTd2LTQgICBjMC0w
        LjYtMC41LTEtMS0xaC04Yy0wLjUsMC0xLDAuNC0xLDF2NGMwLDAuNSwwLjUsMSwxLDFoOEMyNS41LDE4
        LDI2LDE3LjUsMjYsMTd6IE0yNiwyN3YtNGMwLTAuNS0wLjUtMS0xLTFoLThjLTAuNSwwLTEsMC41LTEs
        MSAgIHY0YzAsMC41LDAuNSwxLDEsMWg4QzI1LjUsMjgsMjYsMjcuNSwyNiwyN3oiIGNsYXNzPSJZZWxs
        b3ciIC8+DQogICAgPHBvbHlnb24gcG9pbnRzPSIxNCwxNiAxNCwxNCAxMCwxNCAxMCwxMCA4LDEwIDgs
        MjYgMTQsMjYgMTQsMjQgMTAsMjQgMTAsMTYgICIgY2xhc3M9IkJsYWNrIiAvPg0KICA8L2c+DQo8L3N2
        Zz4L
</value>
  </data>
  <data name="barBtnRefresh.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAIkDAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ
        LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5HcmVlbntmaWxsOiMwMzlD
        MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
        Y2l0eTowLjU7fQoJLnN0MXtkaXNwbGF5Om5vbmU7fQoJLnN0MntkaXNwbGF5OmlubGluZTtmaWxsOiMw
        MzlDMjM7fQoJLnN0M3tkaXNwbGF5OmlubGluZTtmaWxsOiNEMTFDMUM7fQoJLnN0NHtkaXNwbGF5Omlu
        bGluZTtmaWxsOiM3MjcyNzI7fQo8L3N0eWxlPg0KICA8ZyBpZD0iQ2hhbmdlVmlldyI+DQogICAgPHBh
        dGggZD0iTTI0LjUsNy41QzIyLjMsNS4zLDE5LjMsNCwxNiw0QzEwLjEsNCw1LjEsOC4zLDQuMiwxNGg0
        LjFjMC45LTMuNCw0LTYsNy43LTZjMi4yLDAsNC4yLDAuOSw1LjYsMi40TDE4LDE0ICAgaDUuN2g0LjFI
        MjhWNEwyNC41LDcuNXogTTE2LDI0Yy0yLjIsMC00LjItMC45LTUuNi0yLjRMMTQsMThIOC4yaC00SDR2
        MTBsMy41LTMuNUM5LjcsMjYuNywxMi43LDI4LDE2LDI4YzUuOSwwLDEwLjgtNC4zLDExLjgtMTAgICBo
        LTQuMUMyMi44LDIxLjQsMTkuNywyNCwxNiwyNHoiIGNsYXNzPSJCbHVlIiAvPg0KICA8L2c+DQo8L3N2
        Zz4L
</value>
  </data>
  <metadata name="imageCollection1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>152, 17</value>
  </metadata>
  <assembly alias="DevExpress.Utils.v23.2" name="DevExpress.Utils.v23.2, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
  <data name="imageCollection1.ImageStream" type="DevExpress.Utils.ImageCollectionStreamer, DevExpress.Utils.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYyMy4yLCBWZXJzaW9uPTIzLjIu
        NC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFFT
        eXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRv
        a2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAAChEZXZFeHByZXNzLlV0aWxzLkltYWdlQ29sbGVjdGlvblN0
        cmVhbWVyAgAAAAlJbWFnZVNpemUERGF0YQQHE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAAgIAAAAF/P//
        /xNTeXN0ZW0uRHJhd2luZy5TaXplAgAAAAV3aWR0aAZoZWlnaHQAAAgIAwAAABAAAAAQAAAACQUAAAAP
        BQAAABICAAACAAEAAIlQTkcNChoKAAAADUlIRFIAAAAQAAAAEAgGAAAAH/P/YQAAAARnQU1BAACxjwv8
        YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAACiSURBVDhPY2AgAL4UFEiiixENvmZm+oIwujjRAGYAWYYg
        a6aKASQZgqzppmXIfxj7X24uH7parABZMwh/Sk8PJNoV6LbDMEzse2amI7oeOPgfH8+BTTMI33UM307Q
        Fci2P8qs/Y8MkF2B1ZCvubkWuGzH5hV0/XDbX4Qk5KNrwmYAiiHIguga0DFBA0jFIM2m6IKkYLALvmVm
        WpGD78fHcwAA/rw5+nXFLjIAAAAASUVORK5CYIIKAQAAiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYA
        AAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvgAADr4B6kKxwAAAAKxJREFUOE+1kj0OgzAM
        hSNxGy7UKzD3OByAsRNTr9AF9RANSTswdbQrA42SR0LdgSe9xfb3rPwYc4Qsu2lkz2hLrsXZRA8aG4Ry
        Rm6WFi6G4IDGAS6dOfbtfd/UmLlSbRfY9DWfhnPaI+9UAQKLsT73cgExsAcXAy6vawD34GKA+HturMe2
        9OyWVyDXYlPj9REXYfOXLfkhCfg3BNkgHERnN6Pkh8knScH1wkAfQcekgYCMgb0AAAAASUVORK5CYIIL
</value>
  </data>
</root>
WinFrmUI/PBS.WinFrmUI/00-home/01-project/HomePbsProjectTreeViewModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,56 @@
namespace PBS.WinFrmUI
{
    /// <summary>
    ///
    /// </summary>
    public class HomePbsProjectTreeViewModel
    {
        /// <summary>
        ///
        /// </summary>
        public HomePbsProjectTreeViewModel()
        { }
        /// <summary>
        ///
        /// </summary>
        public HomePbsProjectTreeViewModel(Vmo.FacilityVmo rhs)
        {
            this.ID = rhs.ID;
            this.Name = rhs.Name;
            this.SortCode = rhs.SortCode;
            this.Description = rhs.Description;
            this.Project = rhs;
        }
        /// <summary>
        /// UserID
        /// </summary>
        public long ID { get; set; }
        /// <summary>
        /// ParentID
        /// </summary>
        public long ParentID { get; set; }
        /// <summary>
        /// åç§°
        /// </summary>
        public string Name { get; set; }
        /// <summary>
        /// æŽ’序码
        /// </summary>
        public int SortCode { get; set; }
        /// <summary>
        /// è¯´æ˜Ž
        /// </summary>
        public string Description { get; set; }
        /// <summary>
        /// é¡¹ç›®
        /// </summary>
        public Vmo.FacilityVmo Project { get; set; }
    }
}
WinFrmUI/PBS.WinFrmUI/00-home/03-property/HomePbsProjectPropertyCtrl.Designer.cs
@@ -32,11 +32,11 @@
        {
            components = new Container();
            ComponentResourceManager resources = new ComponentResourceManager(typeof(HomePbsProjectPropertyCtrl));
            DevExpress.Utils.SuperToolTip superToolTip3 = new DevExpress.Utils.SuperToolTip();
            DevExpress.Utils.ToolTipTitleItem toolTipTitleItem2 = new DevExpress.Utils.ToolTipTitleItem();
            DevExpress.Utils.ToolTipItem toolTipItem3 = new DevExpress.Utils.ToolTipItem();
            DevExpress.Utils.SuperToolTip superToolTip4 = new DevExpress.Utils.SuperToolTip();
            DevExpress.Utils.ToolTipItem toolTipItem4 = new DevExpress.Utils.ToolTipItem();
            DevExpress.Utils.SuperToolTip superToolTip1 = new DevExpress.Utils.SuperToolTip();
            DevExpress.Utils.ToolTipTitleItem toolTipTitleItem1 = new DevExpress.Utils.ToolTipTitleItem();
            DevExpress.Utils.ToolTipItem toolTipItem1 = new DevExpress.Utils.ToolTipItem();
            DevExpress.Utils.SuperToolTip superToolTip2 = new DevExpress.Utils.SuperToolTip();
            DevExpress.Utils.ToolTipItem toolTipItem2 = new DevExpress.Utils.ToolTipItem();
            layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
            barManager1 = new DevExpress.XtraBars.BarManager(components);
            bar1 = new DevExpress.XtraBars.Bar();
@@ -49,33 +49,25 @@
            barDockControlLeft = new DevExpress.XtraBars.BarDockControl();
            barDockControlRight = new DevExpress.XtraBars.BarDockControl();
            propertyDescriptionControl1 = new DevExpress.XtraVerticalGrid.PropertyDescriptionControl();
            propertyGridControl1 = new DevExpress.XtraVerticalGrid.PropertyGridControl();
            layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
            layoutProperty = new DevExpress.XtraLayout.LayoutControlItem();
            splitterItem1 = new DevExpress.XtraLayout.SplitterItem();
            layoutDescription = new DevExpress.XtraLayout.LayoutControlItem();
            bindingSource1 = new BindingSource(components);
            layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
            gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView();
            gridColumn1 = new DevExpress.XtraGrid.Columns.GridColumn();
            gridControl1 = new DevExpress.XtraGrid.GridControl();
            layoutProperty = new DevExpress.XtraLayout.LayoutControlItem();
            propertyGridControl1 = new DevExpress.XtraVerticalGrid.PropertyGridControl();
            ((ISupportInitialize)layoutControl1).BeginInit();
            layoutControl1.SuspendLayout();
            ((ISupportInitialize)barManager1).BeginInit();
            ((ISupportInitialize)propertyGridControl1).BeginInit();
            ((ISupportInitialize)layoutControlGroup1).BeginInit();
            ((ISupportInitialize)layoutProperty).BeginInit();
            ((ISupportInitialize)splitterItem1).BeginInit();
            ((ISupportInitialize)layoutDescription).BeginInit();
            ((ISupportInitialize)bindingSource1).BeginInit();
            ((ISupportInitialize)layoutControlItem1).BeginInit();
            ((ISupportInitialize)gridView1).BeginInit();
            ((ISupportInitialize)gridControl1).BeginInit();
            ((ISupportInitialize)layoutProperty).BeginInit();
            ((ISupportInitialize)propertyGridControl1).BeginInit();
            SuspendLayout();
            // 
            // layoutControl1
            // 
            layoutControl1.Controls.Add(gridControl1);
            layoutControl1.Controls.Add(propertyDescriptionControl1);
            layoutControl1.Controls.Add(propertyGridControl1);
            layoutControl1.Dock = DockStyle.Fill;
@@ -145,14 +137,14 @@
            barBtnHelp.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnHelp.ImageOptions.SvgImage");
            barBtnHelp.ImageOptions.SvgImageSize = new Size(20, 20);
            barBtnHelp.Name = "barBtnHelp";
            toolTipTitleItem2.Appearance.Image = (Image)resources.GetObject("resource.Image");
            toolTipTitleItem2.Appearance.Options.UseImage = true;
            toolTipTitleItem2.ImageOptions.Image = (Image)resources.GetObject("resource.Image1");
            toolTipItem3.LeftIndent = 6;
            toolTipItem3.Text = "描述信息";
            superToolTip3.Items.Add(toolTipTitleItem2);
            superToolTip3.Items.Add(toolTipItem3);
            barBtnHelp.SuperTip = superToolTip3;
            toolTipTitleItem1.Appearance.Image = (Image)resources.GetObject("resource.Image");
            toolTipTitleItem1.Appearance.Options.UseImage = true;
            toolTipTitleItem1.ImageOptions.Image = (Image)resources.GetObject("resource.Image1");
            toolTipItem1.LeftIndent = 6;
            toolTipItem1.Text = "描述信息";
            superToolTip1.Items.Add(toolTipTitleItem1);
            superToolTip1.Items.Add(toolTipItem1);
            barBtnHelp.SuperTip = superToolTip1;
            barBtnHelp.ItemClick += barBtnHelp_ItemClick;
            // 
            // barBtnDirect
@@ -166,10 +158,10 @@
            barBtnDirect.ItemAppearance.Normal.Options.UseFont = true;
            barBtnDirect.Name = "barBtnDirect";
            barBtnDirect.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph;
            toolTipItem4.AllowHtmlText = DevExpress.Utils.DefaultBoolean.True;
            toolTipItem4.Text = "跳转";
            superToolTip4.Items.Add(toolTipItem4);
            barBtnDirect.SuperTip = superToolTip4;
            toolTipItem2.AllowHtmlText = DevExpress.Utils.DefaultBoolean.True;
            toolTipItem2.Text = "跳转";
            superToolTip2.Items.Add(toolTipItem2);
            barBtnDirect.SuperTip = superToolTip2;
            barBtnDirect.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;
            barBtnDirect.ItemClick += barBtnDirect_ItemClick;
            // 
@@ -211,14 +203,49 @@
            // 
            // propertyDescriptionControl1
            // 
            propertyDescriptionControl1.Location = new Point(2, 679);
            propertyDescriptionControl1.Location = new Point(2, 697);
            propertyDescriptionControl1.Margin = new Padding(3, 4, 3, 4);
            propertyDescriptionControl1.Name = "propertyDescriptionControl1";
            propertyDescriptionControl1.PropertyGrid = propertyGridControl1;
            propertyDescriptionControl1.Size = new Size(293, 94);
            propertyDescriptionControl1.Size = new Size(293, 76);
            propertyDescriptionControl1.StyleController = layoutControl1;
            propertyDescriptionControl1.TabIndex = 5;
            propertyDescriptionControl1.TabIndex = 1;
            propertyDescriptionControl1.TabStop = false;
            //
            // layoutControlGroup1
            //
            layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
            layoutControlGroup1.GroupBordersVisible = false;
            layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutProperty, layoutDescription, splitterItem1 });
            layoutControlGroup1.Name = "Root";
            layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlGroup1.Size = new Size(297, 775);
            layoutControlGroup1.TextVisible = false;
            //
            // splitterItem1
            //
            splitterItem1.AllowHotTrack = true;
            splitterItem1.Location = new Point(0, 683);
            splitterItem1.Name = "splitterItem1";
            splitterItem1.Size = new Size(297, 12);
            //
            // layoutDescription
            //
            layoutDescription.Control = propertyDescriptionControl1;
            layoutDescription.Location = new Point(0, 695);
            layoutDescription.Name = "layoutDescription";
            layoutDescription.Size = new Size(297, 80);
            layoutDescription.TextSize = new Size(0, 0);
            layoutDescription.TextVisible = false;
            //
            // layoutProperty
            //
            layoutProperty.Control = propertyGridControl1;
            layoutProperty.Location = new Point(0, 0);
            layoutProperty.Name = "layoutProperty";
            layoutProperty.Size = new Size(297, 683);
            layoutProperty.TextSize = new Size(0, 0);
            layoutProperty.TextVisible = false;
            // 
            // propertyGridControl1
            // 
@@ -246,85 +273,13 @@
            propertyGridControl1.OptionsView.ShowRootCategories = false;
            propertyGridControl1.RecordWidth = 120;
            propertyGridControl1.RowHeaderWidth = 80;
            propertyGridControl1.Size = new Size(293, 328);
            propertyGridControl1.TabIndex = 4;
            propertyGridControl1.Size = new Size(293, 679);
            propertyGridControl1.TabIndex = 0;
            propertyGridControl1.CustomRecordCellEdit += propertyGridControl1_CustomRecordCellEdit;
            propertyGridControl1.CustomDrawRowValueCell += propertyGridControl1_CustomDrawRowValueCell;
            propertyGridControl1.ShowingEditor += propertyGridControl1_ShowingEditor;
            propertyGridControl1.CellValueChanging += propertyGridControl1_CellValueChanging;
            propertyGridControl1.CellValueChanged += propertyGridControl1_CellValueChanged;
            //
            // layoutControlGroup1
            //
            layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
            layoutControlGroup1.GroupBordersVisible = false;
            layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutProperty, splitterItem1, layoutDescription, layoutControlItem1 });
            layoutControlGroup1.Name = "Root";
            layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlGroup1.Size = new Size(297, 775);
            layoutControlGroup1.TextVisible = false;
            //
            // layoutProperty
            //
            layoutProperty.Control = propertyGridControl1;
            layoutProperty.Location = new Point(0, 0);
            layoutProperty.Name = "layoutProperty";
            layoutProperty.Size = new Size(297, 332);
            layoutProperty.TextSize = new Size(0, 0);
            layoutProperty.TextVisible = false;
            //
            // splitterItem1
            //
            splitterItem1.AllowHotTrack = true;
            splitterItem1.Location = new Point(0, 665);
            splitterItem1.Name = "splitterItem1";
            splitterItem1.Size = new Size(297, 12);
            //
            // layoutDescription
            //
            layoutDescription.Control = propertyDescriptionControl1;
            layoutDescription.Location = new Point(0, 677);
            layoutDescription.Name = "layoutDescription";
            layoutDescription.Size = new Size(297, 98);
            layoutDescription.TextSize = new Size(0, 0);
            layoutDescription.TextVisible = false;
            //
            // layoutControlItem1
            //
            layoutControlItem1.Control = gridControl1;
            layoutControlItem1.Location = new Point(0, 332);
            layoutControlItem1.Name = "layoutControlItem1";
            layoutControlItem1.Size = new Size(297, 333);
            layoutControlItem1.TextSize = new Size(0, 0);
            layoutControlItem1.TextVisible = false;
            //
            // gridView1
            //
            gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { gridColumn1 });
            gridView1.GridControl = gridControl1;
            gridView1.Name = "gridView1";
            gridView1.OptionsView.ShowGroupPanel = false;
            gridView1.FocusedRowChanged += gridView1_FocusedRowChanged;
            //
            // gridColumn1
            //
            gridColumn1.Caption = "项目名";
            gridColumn1.FieldName = "Name";
            gridColumn1.MinWidth = 25;
            gridColumn1.Name = "gridColumn1";
            gridColumn1.Visible = true;
            gridColumn1.VisibleIndex = 0;
            gridColumn1.Width = 94;
            //
            // gridControl1
            //
            gridControl1.Location = new Point(2, 334);
            gridControl1.MainView = gridView1;
            gridControl1.MenuManager = barManager1;
            gridControl1.Name = "gridControl1";
            gridControl1.Size = new Size(293, 329);
            gridControl1.TabIndex = 6;
            gridControl1.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { gridView1 });
            // 
            // HomePbsProjectPropertyCtrl
            // 
@@ -341,15 +296,12 @@
            ((ISupportInitialize)layoutControl1).EndInit();
            layoutControl1.ResumeLayout(false);
            ((ISupportInitialize)barManager1).EndInit();
            ((ISupportInitialize)propertyGridControl1).EndInit();
            ((ISupportInitialize)layoutControlGroup1).EndInit();
            ((ISupportInitialize)layoutProperty).EndInit();
            ((ISupportInitialize)splitterItem1).EndInit();
            ((ISupportInitialize)layoutDescription).EndInit();
            ((ISupportInitialize)bindingSource1).EndInit();
            ((ISupportInitialize)layoutControlItem1).EndInit();
            ((ISupportInitialize)gridView1).EndInit();
            ((ISupportInitialize)gridControl1).EndInit();
            ((ISupportInitialize)layoutProperty).EndInit();
            ((ISupportInitialize)propertyGridControl1).EndInit();
            ResumeLayout(false);
            PerformLayout();
        }
@@ -359,7 +311,6 @@
        private DevExpress.XtraLayout.LayoutControl layoutControl1;
        private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
        private DevExpress.XtraVerticalGrid.PropertyDescriptionControl propertyDescriptionControl1;
        private DevExpress.XtraLayout.LayoutControlItem layoutProperty;
        private DevExpress.XtraBars.BarDockControl barDockControlTop;
        private DevExpress.XtraBars.BarDockControl barDockControlBottom;
        private DevExpress.XtraBars.BarDockControl barDockControlLeft;
@@ -367,16 +318,13 @@
        private DevExpress.XtraLayout.SplitterItem splitterItem1;
        private DevExpress.XtraLayout.LayoutControlItem layoutDescription;
        private DevExpress.XtraBars.BarManager barManager1;
        private DevExpress.XtraVerticalGrid.PropertyGridControl propertyGridControl1;
        private DevExpress.XtraBars.BarButtonItem barBtnHelp;
        private DevExpress.XtraBars.Bar bar1;
        private DevExpress.XtraBars.BarButtonItem barBtnExpandAll;
        private DevExpress.XtraBars.BarButtonItem barBtnCollpseAll;
        private DevExpress.XtraBars.BarButtonItem barBtnDirect;
        private BindingSource bindingSource1;
        private DevExpress.XtraGrid.GridControl gridControl1;
        private DevExpress.XtraGrid.Views.Grid.GridView gridView1;
        private DevExpress.XtraGrid.Columns.GridColumn gridColumn1;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
        private DevExpress.XtraVerticalGrid.PropertyGridControl propertyGridControl1;
        private DevExpress.XtraLayout.LayoutControlItem layoutProperty;
    }
}
WinFrmUI/PBS.WinFrmUI/00-home/03-property/HomePbsProjectPropertyCtrl.cs
@@ -19,16 +19,6 @@
            //this.layoutControl1.SetupLayoutControl();
            SetDescriptionVisible(false);//默认设置属性描述面板不显示
            this.barBtnDirect.Visibility = BarItemVisibility.Never;
            this.Load += HomePbsProjectPropertyCtrl_Load;
            this.gridView1.SetNormalView(30);
        }
        private async void HomePbsProjectPropertyCtrl_Load(object sender, EventArgs e)
        {
            _allBindingList = await new BLL.Facility().GetAll();
            this.bindingSource1.DataSource = _allBindingList;
            this.gridControl1.DataSource = bindingSource1;
            this.bindingSource1.ResetBindings(false);
        }
        /// <summary>
@@ -37,11 +27,6 @@
        public event Action<long> JumpDirectEvent;
        private List<FacilityVmo> _allBindingList;
        /// <summary>
        /// é€‰æ‹©é¡¹ç›®äº‹ä»¶
        /// </summary>
        public event Action<FacilityVmo> SelectProjectEvent;
        /// <summary>
        /// ç»‘定对象
@@ -268,15 +253,6 @@
                   return;
               }
               JumpDirectEvent?.Invoke(this.SelectedObject.Project.ID);*/
        }
        private void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
        {
            var vm = this.gridView1.GetCurrentViewModel(_allBindingList);
            if (vm != null)
            {
                SelectProjectEvent.Invoke(vm);
            }
        }
    }
}
WinFrmUI/PBS.WinFrmUI/00-home/03-property/HomePbsProjectPropertyCtrl.resx
@@ -121,6 +121,43 @@
    <value>17, 17</value>
  </metadata>
  <assembly alias="DevExpress.Data.v23.2" name="DevExpress.Data.v23.2, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
  <data name="barBtnExpandAll.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALACAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iRXhwYW5kX0ZpZWxkIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3
        IDAgMCAzMiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkuQmxhY2t7ZmlsbDojNzI3Mjcy
        O30KCS5HcmVlbntmaWxsOiMwMzlDMjM7fQoJLnN0MHtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8
        cG9seWdvbiBwb2ludHM9IjE0LDYgMTAsNiAxMCwyIDYsMiA2LDYgMiw2IDIsMTAgNiwxMCA2LDE0IDEw
        LDE0IDEwLDEwIDE0LDEwICIgY2xhc3M9IkdyZWVuIiAvPg0KICA8ZyBjbGFzcz0ic3QwIj4NCiAgICA8
        cGF0aCBkPSJNMjIsNmgxMHYySDIyVjZ6IE0yMiwxMmgxMHYtMkgyMlYxMnogTTIyLDIwaDEwdi0ySDIy
        VjIweiBNMjIsMjRoMTB2LTJIMjJWMjR6IiBjbGFzcz0iQmxhY2siIC8+DQogIDwvZz4NCiAgPHBhdGgg
        ZD0iTTE4LDJoMTR2MkgxOFYyeiBNMTgsMTZoMTR2LTJIMThWMTZ6IE0xOCwyOGgxNHYtMkgxOFYyOHoi
        IGNsYXNzPSJCbGFjayIgLz4NCjwvc3ZnPgs=
</value>
  </data>
  <data name="barBtnCollpseAll.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAIcCAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iQ29sbGFwc2VfRmllbGQiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpu
        ZXcgMCAwIDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5CbGFja3tmaWxsOiM3Mjcy
        NzI7fQoJLlJlZHtmaWxsOiNEMTFDMUM7fQoJLnN0MHtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8
        cmVjdCB4PSIyIiB5PSI2IiB3aWR0aD0iMTIiIGhlaWdodD0iNCIgY2xhc3M9IlJlZCIgLz4NCiAgPGcg
        Y2xhc3M9InN0MCI+DQogICAgPHBhdGggZD0iTTIyLDZoMTB2MkgyMlY2eiBNMjIsMTJoMTB2LTJIMjJW
        MTJ6IE0yMiwyMGgxMHYtMkgyMlYyMHogTTIyLDI0aDEwdi0ySDIyVjI0eiIgY2xhc3M9IkJsYWNrIiAv
        Pg0KICA8L2c+DQogIDxwYXRoIGQ9Ik0xOCwyaDE0djJIMThWMnogTTE4LDE2aDE0di0ySDE4VjE2eiBN
        MTgsMjhoMTR2LTJIMThWMjh6IiBjbGFzcz0iQmxhY2siIC8+DQo8L3N2Zz4L
</value>
  </data>
  <data name="barBtnHelp.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
@@ -175,43 +212,6 @@
        x1C0IEahQ2KeHgrtONK1Y0jXjiCzYRQJeQZEX2jiHDzzcJCIQkm89RBRhBFROFst5ECa+mh+G9Jq3Uit
        dSM2qxHbI1PqiGgfX13uD6KKiop1iA8WGnHoiiYupwXRmQ0I3p/8hD8cosBVvWuH14SEh0YpaoIjz6n/
        NvzfABES6PeV1w0zfgMuUjOvNOhPhQAAAABJRU5ErkJggg==
</value>
  </data>
  <data name="barBtnExpandAll.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALACAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iRXhwYW5kX0ZpZWxkIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3
        IDAgMCAzMiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkuQmxhY2t7ZmlsbDojNzI3Mjcy
        O30KCS5HcmVlbntmaWxsOiMwMzlDMjM7fQoJLnN0MHtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8
        cG9seWdvbiBwb2ludHM9IjE0LDYgMTAsNiAxMCwyIDYsMiA2LDYgMiw2IDIsMTAgNiwxMCA2LDE0IDEw
        LDE0IDEwLDEwIDE0LDEwICIgY2xhc3M9IkdyZWVuIiAvPg0KICA8ZyBjbGFzcz0ic3QwIj4NCiAgICA8
        cGF0aCBkPSJNMjIsNmgxMHYySDIyVjZ6IE0yMiwxMmgxMHYtMkgyMlYxMnogTTIyLDIwaDEwdi0ySDIy
        VjIweiBNMjIsMjRoMTB2LTJIMjJWMjR6IiBjbGFzcz0iQmxhY2siIC8+DQogIDwvZz4NCiAgPHBhdGgg
        ZD0iTTE4LDJoMTR2MkgxOFYyeiBNMTgsMTZoMTR2LTJIMThWMTZ6IE0xOCwyOGgxNHYtMkgxOFYyOHoi
        IGNsYXNzPSJCbGFjayIgLz4NCjwvc3ZnPgs=
</value>
  </data>
  <data name="barBtnCollpseAll.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAIcCAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iQ29sbGFwc2VfRmllbGQiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpu
        ZXcgMCAwIDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5CbGFja3tmaWxsOiM3Mjcy
        NzI7fQoJLlJlZHtmaWxsOiNEMTFDMUM7fQoJLnN0MHtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8
        cmVjdCB4PSIyIiB5PSI2IiB3aWR0aD0iMTIiIGhlaWdodD0iNCIgY2xhc3M9IlJlZCIgLz4NCiAgPGcg
        Y2xhc3M9InN0MCI+DQogICAgPHBhdGggZD0iTTIyLDZoMTB2MkgyMlY2eiBNMjIsMTJoMTB2LTJIMjJW
        MTJ6IE0yMiwyMGgxMHYtMkgyMlYyMHogTTIyLDI0aDEwdi0ySDIyVjI0eiIgY2xhc3M9IkJsYWNrIiAv
        Pg0KICA8L2c+DQogIDxwYXRoIGQ9Ik0xOCwyaDE0djJIMThWMnogTTE4LDE2aDE0di0ySDE4VjE2eiBN
        MTgsMjhoMTR2LTJIMThWMjh6IiBjbGFzcz0iQmxhY2siIC8+DQo8L3N2Zz4L
</value>
  </data>
  <data name="barBtnDirect.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
WinFrmUI/PBS.WinFrmUI/PBS.WinFrmUI.csproj.user
@@ -5,7 +5,7 @@
    <Compile Update="00-home\00-core\HomePbsProjectPage.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="00-home\01-prjlist\XtraUserControl1.cs">
    <Compile Update="00-home\01-project\HomePbsProjectTreeListCtrl.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="00-home\02-map\MapViewProjectListContainer.cs">