diff --git a/Directory.Packages.props b/Directory.Packages.props
index f2fd119b5..bcedfd1c1 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -45,12 +45,12 @@
-
-
-
+
+
+
-
+
\ No newline at end of file
diff --git a/ILSpy/Analyzers/AnalyzerTreeView.xaml b/ILSpy/Analyzers/AnalyzerTreeView.xaml
index 28bba030c..d23119f12 100644
--- a/ILSpy/Analyzers/AnalyzerTreeView.xaml
+++ b/ILSpy/Analyzers/AnalyzerTreeView.xaml
@@ -12,8 +12,7 @@
ShowRoot="False"
BorderThickness="0"
Root="{Binding Root}"
- toms:MultiSelectorExtensions.SelectionBinding="{Binding SelectedItems}"
- SelectedItem="{Binding SelectedItem, Mode=TwoWay}"
+ toms:MultiSelectorExtensions.SelectionBinding="{Binding SelectedItems, Mode=TwoWay}"
SelectionChanged="AnalyzerTreeView_OnSelectionChanged">
diff --git a/ILSpy/Analyzers/AnalyzerTreeViewModel.cs b/ILSpy/Analyzers/AnalyzerTreeViewModel.cs
index 7a746c088..5c666d38f 100644
--- a/ILSpy/Analyzers/AnalyzerTreeViewModel.cs
+++ b/ILSpy/Analyzers/AnalyzerTreeViewModel.cs
@@ -17,8 +17,6 @@
// DEALINGS IN THE SOFTWARE.
using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
using System.ComponentModel.Composition;
using System.Linq;
using System.Windows;
@@ -38,8 +36,6 @@ namespace ICSharpCode.ILSpy.Analyzers
[Export]
public class AnalyzerTreeViewModel : ToolPaneModel
{
- private AnalyzerTreeNode selectedItem;
-
public const string PaneContentId = "analyzerPane";
public AnalyzerTreeViewModel()
@@ -52,14 +48,20 @@ namespace ICSharpCode.ILSpy.Analyzers
public AnalyzerRootNode Root { get; } = new();
- public AnalyzerTreeNode SelectedItem {
- get => selectedItem;
- set => SetProperty(ref selectedItem, value);
- }
-
public ICommand AnalyzeCommand => new DelegateCommand(AnalyzeSelected);
- public ObservableCollection SelectedItems { get; } = [];
+ private AnalyzerTreeNode[] selectedItems = [];
+
+ public AnalyzerTreeNode[] SelectedItems {
+ get => selectedItems ?? [];
+ set {
+ if (SelectedItems.SequenceEqual(value))
+ return;
+
+ selectedItems = value;
+ OnPropertyChanged();
+ }
+ }
private void AnalyzeSelected()
{
@@ -87,7 +89,7 @@ namespace ICSharpCode.ILSpy.Analyzers
}
target.IsExpanded = true;
- this.SelectedItem = target;
+ this.SelectedItems = [target];
}
public void Analyze(IEntity entity)
diff --git a/ILSpy/AssemblyTree/AssemblyListPane.xaml b/ILSpy/AssemblyTree/AssemblyListPane.xaml
index 7222fdabf..49ea9a781 100644
--- a/ILSpy/AssemblyTree/AssemblyListPane.xaml
+++ b/ILSpy/AssemblyTree/AssemblyListPane.xaml
@@ -15,8 +15,7 @@
AllowDrop="True"
BorderThickness="0" Visibility="Visible"
Root="{Binding Root}"
- SelectedItem="{Binding SelectedItem, Mode=TwoWay}"
- toms:MultiSelectorExtensions.SelectionBinding="{Binding SelectedItems}">
+ toms:MultiSelectorExtensions.SelectionBinding="{Binding SelectedItems, Mode=TwoWay}">