Skip to content

Commit 64cbcd4

Browse files
Merge pull request #3294 from tom-englert/dev/WpfRefactoring
Fix possible ObservableCollection re-entrance crash when trying to na…
2 parents c524892 + 9b95f92 commit 64cbcd4

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

ILSpy/AssemblyTree/AssemblyTreeModel.cs

+11-2
Original file line numberDiff line numberDiff line change
@@ -530,14 +530,22 @@ internal void SelectNodes(IEnumerable<SharpTreeNode> nodes)
530530
if (this.isNavigatingHistory)
531531
{
532532
SelectedItems.Clear();
533-
SelectedItems.AddRange(nodesList);
533+
foreach (var node in nodesList)
534+
{
535+
activeView.ScrollIntoView(node);
536+
SelectedItems.Add(node);
537+
}
534538
}
535539
else
536540
{
537541
// defer selection change, so it does not interfere with the focus of the tab page.
538542
Dispatcher.BeginInvoke(() => {
539543
SelectedItems.Clear();
540-
SelectedItems.AddRange(nodesList);
544+
foreach (var node in nodesList)
545+
{
546+
activeView.ScrollIntoView(node);
547+
SelectedItems.Add(node);
548+
}
541549
});
542550
}
543551
}
@@ -691,6 +699,7 @@ public void LoadAssemblies(IEnumerable<string> fileNames, List<LoadedAssembly> l
691699
if (node != null && focusNode)
692700
{
693701
lastNode = node;
702+
activeView?.ScrollIntoView(node);
694703
SelectedItems.Add(node);
695704
}
696705
}

0 commit comments

Comments
 (0)