From a4e77ef29315b91f3e25c1745c63a67fc425f30d Mon Sep 17 00:00:00 2001 From: TheXamlGuy Date: Sat, 6 Jul 2024 21:31:04 +0100 Subject: [PATCH] Ensure we track old selection on removal --- Toolkit.Foundation/ObservableCollection.cs | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/Toolkit.Foundation/ObservableCollection.cs b/Toolkit.Foundation/ObservableCollection.cs index b9ca223..1c289c3 100644 --- a/Toolkit.Foundation/ObservableCollection.cs +++ b/Toolkit.Foundation/ObservableCollection.cs @@ -168,7 +168,6 @@ public partial class ObservableCollection : }, parameters); Add(item); - return item; } @@ -401,7 +400,6 @@ public partial class ObservableCollection : pendingEvents.Enqueue(args); } - return Task.CompletedTask; } @@ -529,9 +527,10 @@ public partial class ObservableCollection : Disposer.Dispose(item); Disposer.Remove(this, item); + TItem? oldSelection = SelectedItem; RemoveItem(index); - if (item.Equals(SelectedItem)) + if (item.Equals(oldSelection)) { int newIndex = Math.Min(index, Count - 1); TItem? selectedItem = newIndex >= 0 ? this[newIndex] : default; @@ -653,10 +652,7 @@ public partial class ObservableCollection : { if (oldValue is ISelectable oldSelection) { - if (oldSelection.IsSelected) - { - oldSelection.IsSelected = false; - } + oldSelection.IsSelected = false; } if (newValue is ISelectable newSelection)