diff --git a/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests.cs b/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests.cs index 9ef2750ff3..9bafe9baee 100644 --- a/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests.cs +++ b/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests.cs @@ -1089,6 +1089,38 @@ namespace Avalonia.Controls.UnitTests.Primitives Assert.Equal("Bar", target.SelectedItem); } + [Fact] + public void Removing_Item_Before_SelectedItem_Should_Update_Container_Selection_When_SelectionModel_Present() + { + // Issue #4496. + var items = new ObservableCollection + { + "Foo", + "Bar", + "Baz" + }; + + var target = new ListBox + { + Template = Template(), + Items = items, + }; + + var selection = new SelectionModel(); + selection.Select(1); + target.Selection = selection; + + target.ApplyTemplate(); + target.Presenter.ApplyTemplate(); + + items.RemoveAt(0); + + Assert.Equal(0, target.SelectedIndex); + + var container = (ListBoxItem)target.ItemContainerGenerator.ContainerFromIndex(0); + Assert.True(container.IsSelected); + } + [Fact] public void Replacing_Selected_Item_Should_Update_SelectedItem() {