From 7d3aa07f6f94c70ca0a631a45db6565a5a58d9cf Mon Sep 17 00:00:00 2001
From: qin <a@163.com>
Date: 星期四, 29 八月 2024 13:33:15 +0800
Subject: [PATCH] 优化自动增加属性方法

---
 HStation.RevitDev/RevitDataExport/Forms/Wpf_InstancePanel.xaml.cs |   58 ++++++++++++++++++----------------------------------------
 1 files changed, 18 insertions(+), 40 deletions(-)

diff --git a/HStation.RevitDev/RevitDataExport/Forms/Wpf_InstancePanel.xaml.cs b/HStation.RevitDev/RevitDataExport/Forms/Wpf_InstancePanel.xaml.cs
index b8e2a16..a64f190 100644
--- a/HStation.RevitDev/RevitDataExport/Forms/Wpf_InstancePanel.xaml.cs
+++ b/HStation.RevitDev/RevitDataExport/Forms/Wpf_InstancePanel.xaml.cs
@@ -6,7 +6,6 @@
 using HStation.RevitDev.RevitDataExport.Service;
 using HStation.RevitDev.RevitDataExport.Utility;
 using System;
-using System.Collections.Generic;
 using System.Linq;
 using System.Windows;
 using System.Windows.Controls;
@@ -22,10 +21,10 @@
         public Wpf_InstancePanel()
         {
             InitializeComponent();
-            InitializeControls();
+            InitializeControlsData();
         }
 
-        private void InitializeControls()
+        private void InitializeControlsData()
         {
             var values = Enum.GetValues(typeof(RevitType));
             this.tabControl.Items.Clear();
@@ -54,6 +53,7 @@
         private DataGrid CreateDataGrid(RevitType revitType)
         {
             var dataGrid = new DataGrid();
+            dataGrid.RowHeight = 20;
             dataGrid.IsReadOnly = true;
             dataGrid.LoadingRow += DataGrid_LoadingRow;
             dataGrid.SelectionUnit = DataGridSelectionUnit.Cell;
@@ -73,48 +73,25 @@
             try
             {
                 DataGrid dataGrid = sender as DataGrid;
-                var selectItem = dataGrid.SelectedCells;
-                var selectCell = selectItem[0];
-                var columnIndex = selectCell.Column.DisplayIndex;
-                if (columnIndex == 0)
+                var selectCells = dataGrid.SelectedCells;
+                if (selectCells.Count == 0) { return; }
+
+                var selectCell = selectCells[0];
+                if (selectCell.Column.Header.ToString() == "缂栧彿")
                 {
-                    ShowElement(selectCell);
+                    string id = (selectCell.Item as ElementModel).缂栧彿;
+                    UIDocumentUtils.ShowElement(id);
                 }
-                else if (columnIndex == 2)
+                else if (selectCell.Column.Header.ToString() == "杩炴帴鏋勪欢")
                 {
-                    ShowLinkedElements(selectCell);
+                    string ids = (selectCell.Item as ElementModel).杩炴帴鏋勪欢;
+                    UIDocumentUtils.ShowLinkedElements(ids);
                 }
             }
             catch (Exception ex)
             {
                 TaskDialog.Show("閿欒", ex.Message);
             }
-        }
-
-        private void ShowLinkedElements(DataGridCellInfo selectCell)
-        {
-            string ids = (selectCell.Item as ElementModel).LinkIds;
-            if (string.IsNullOrEmpty(ids))
-            {
-                return;
-            }
-            var idArray = ids.Split(',');
-            var idList = idArray.Select(x => new ElementId(int.Parse(x)))?.ToList();
-            GlobalResource.CurrentUIDocument.Selection.SetElementIds(idList);
-            GlobalResource.CurrentUIDocument.ShowElements(idList);
-        }
-
-        private void ShowElement(DataGridCellInfo selectCell)
-        {
-            string id = (selectCell.Item as ElementModel).Id;
-            if (string.IsNullOrEmpty(id))
-            {
-                return;
-            }
-            var elemId = new ElementId(int.Parse(id));
-            GlobalResource.CurrentUIDocument.Selection.SetElementIds(
-                new List<ElementId> { elemId });
-            GlobalResource.CurrentUIDocument.ShowElements(elemId);
         }
 
         private void DataGrid_PreviewMouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
@@ -124,7 +101,7 @@
                 DataGrid dataGrid = sender as DataGrid;
                 var selectCells = dataGrid.SelectedCells;
 
-                string ids = (selectCells[0].Item as ElementModel).LinkIds;
+                string ids = (selectCells[0].Item as ElementModel).杩炴帴鏋勪欢;
                 var idArray = ids.Split(',');
                 var idList = idArray.Select(x => new ElementId(int.Parse(x)))?.ToList();
                 GlobalResource.CurrentUIDocument.Selection.SetElementIds(idList);
@@ -139,13 +116,14 @@
         private void CreateRows(DataGrid dataGrid, RevitType revitType)
         {
             var models = RevitMepElementService.GetElementModels(revitType);
-            dataGrid.ItemsSource = models;
+            WpfBindingUtils.Binding2(dataGrid, revitType, models);
+            //WpfBindingUtils.Binding(dataGrid, revitType, models);
         }
 
         public void SetupDockablePane(DockablePaneProviderData data)
         {
             data.FrameworkElement = this;
-            data.InitialState =  new DockablePaneState 
+            data.InitialState = new DockablePaneState
             {
                 DockPosition = DockPosition.Bottom,
                 MinimumHeight = 200
@@ -160,7 +138,7 @@
 
         public void UpdateForm()
         {
-            InitializeControls();
+            InitializeControlsData();
         }
     }
 }

--
Gitblit v1.9.3