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}">