From 86abf2bf8df2fe33385b65c74af32b82514c8a60 Mon Sep 17 00:00:00 2001 From: tian <11429339@qq.com> Date: Tue, 14 Jul 2026 10:28:22 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=88=AB=E5=90=8D=E6=A0=91=E9=87=8D?= =?UTF-8?q?=E5=90=AF=E5=90=8E=E6=98=BE=E7=A4=BA=E9=94=99=E8=AF=AF=20?= =?UTF-8?q?=E2=80=94=20EnsurePathLoaded=20=E7=A1=AC=E7=BC=96=E7=A0=81=20si?= =?UTF-8?q?blingIndex=3D0=20=E5=AF=BC=E8=87=B4=E5=90=8C=E5=90=8D=E5=85=84?= =?UTF-8?q?=E5=BC=9F=E8=8A=82=E7=82=B9=E6=98=A0=E5=B0=84=E5=88=B0=E5=90=8C?= =?UTF-8?q?=E4=B8=80=20key=EF=BC=9BSetDataStore=20=E8=A1=A5=E5=88=B7?= =?UTF-8?q?=E5=88=AB=E5=90=8D=EF=BC=9B=E5=88=AB=E5=90=8D=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=94=B9=E4=B8=BA=20DEBUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Core/AliasTree/AliasNodeIdentity.cs | 2 +- src/UI/WPF/Views/AliasTreeControl.xaml.cs | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Core/AliasTree/AliasNodeIdentity.cs b/src/Core/AliasTree/AliasNodeIdentity.cs index 2629728..a4a4560 100644 --- a/src/Core/AliasTree/AliasNodeIdentity.cs +++ b/src/Core/AliasTree/AliasNodeIdentity.cs @@ -81,7 +81,7 @@ namespace NavisworksTransport.Core.AliasTree /// /// 计算同名兄弟节点中的位置 /// - private static int ComputeSiblingIndex(ModelItem item) + internal static int ComputeSiblingIndex(ModelItem item) { var parent = item.Parent; if (parent == null) return 0; diff --git a/src/UI/WPF/Views/AliasTreeControl.xaml.cs b/src/UI/WPF/Views/AliasTreeControl.xaml.cs index 16ff4cc..6ac07bc 100644 --- a/src/UI/WPF/Views/AliasTreeControl.xaml.cs +++ b/src/UI/WPF/Views/AliasTreeControl.xaml.cs @@ -100,6 +100,10 @@ namespace NavisworksTransport.UI.WPF.Views var aliasMap = _dataStore?.LoadAll(); if (aliasMap != null && aliasMap.Count > 0) EnsureAliasedPathsVisible(aliasMap); + + // EnsureAliasedPathsVisible 可能创建了新节点,需要再刷一次别名到这些节点上 + if (_built) + RefreshAliasesFromStore(); } private void RefreshAliasesFromStore() @@ -718,7 +722,7 @@ namespace NavisworksTransport.UI.WPF.Views LogManager.Info($"[别名树] EnsureAliasedPathsVisible: 共 {aliasMap.Count} 条别名"); foreach (var kvp in aliasMap) { - LogManager.Info($"[别名树] alias: key={kvp.Key} -> \"{kvp.Value}\""); + LogManager.Debug($"[别名树] alias: key={kvp.Key} -> \"{kvp.Value}\""); } int loaded = 0; @@ -803,8 +807,9 @@ namespace NavisworksTransport.UI.WPF.Views if (child == null) { + int siblingIdx = NavisworksTransport.Core.AliasTree.AliasNodeIdentity.ComputeSiblingIndex(targetModelItem); child = BuildNode(targetModelItem, aliasMap, displayAlias, - treeNode.Depth + 1, treeNode.NodeKey, 0); + treeNode.Depth + 1, treeNode.NodeKey, siblingIdx); if (child != null) { child.Parent = treeNode;