From a031489da48f1cd19012769acfae385907e8b841 Mon Sep 17 00:00:00 2001 From: Stephan Rumswinkel <17520641+srwi@users.noreply.github.com> Date: Tue, 10 Dec 2024 19:49:59 +0100 Subject: [PATCH] Prevent modification of sealed Setter collection (#556) --- .../Controls/SearchResultsView.xaml.cs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/EverythingToolbar/Controls/SearchResultsView.xaml.cs b/EverythingToolbar/Controls/SearchResultsView.xaml.cs index 4f031a97b..1ed47b1a7 100644 --- a/EverythingToolbar/Controls/SearchResultsView.xaml.cs +++ b/EverythingToolbar/Controls/SearchResultsView.xaml.cs @@ -38,31 +38,38 @@ public SearchResultsView() private void RegisterItemContainerStyleProperties(object sender, ResourcesChangedEventArgs e) { - SearchResultsListView.ItemContainerStyle.Setters.Add(new EventSetter + if (SearchResultsListView.ItemContainerStyle == null) + { + SearchResultsListView.ItemContainerStyle = new Style(typeof(ListViewItem)); + } + + var newStyle = new Style(typeof(ListViewItem), SearchResultsListView.ItemContainerStyle); + newStyle.Setters.Add(new EventSetter { Event = PreviewMouseLeftButtonUpEvent, Handler = new MouseButtonEventHandler(SingleClickSearchResult) }); - SearchResultsListView.ItemContainerStyle.Setters.Add(new EventSetter + newStyle.Setters.Add(new EventSetter { Event = PreviewMouseDoubleClickEvent, Handler = new MouseButtonEventHandler(DoubleClickSearchResult) }); - SearchResultsListView.ItemContainerStyle.Setters.Add(new EventSetter + newStyle.Setters.Add(new EventSetter { Event = PreviewMouseDownEvent, Handler = new MouseButtonEventHandler(OnListViewItemMouseDown) }); - SearchResultsListView.ItemContainerStyle.Setters.Add(new EventSetter + newStyle.Setters.Add(new EventSetter { Event = MouseMoveEvent, Handler = new MouseEventHandler(OnListViewItemMouseMove) }); - SearchResultsListView.ItemContainerStyle.Setters.Add(new Setter + newStyle.Setters.Add(new Setter { Property = ContextMenuProperty, Value = new Binding { Source = Resources["ListViewItemContextMenu"] } }); + SearchResultsListView.ItemContainerStyle = newStyle; } private void OnKeyPressed(object sender, KeyEventArgs e)