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;