|
@@ -1619,6 +1619,27 @@ namespace Avalonia.Controls.UnitTests.Primitives
|
|
|
Assert.Equal(new[] { "bar" }, target.SelectedItems);
|
|
|
}
|
|
|
|
|
|
+ [Fact]
|
|
|
+ public void Preserves_SelectedItem_When_Items_Changed()
|
|
|
+ {
|
|
|
+ // Issue #4048
|
|
|
+ var target = new SelectingItemsControl
|
|
|
+ {
|
|
|
+ Items = new[] { "foo", "bar", "baz"},
|
|
|
+ SelectedItem = "bar",
|
|
|
+ };
|
|
|
+
|
|
|
+ Prepare(target);
|
|
|
+
|
|
|
+ Assert.Equal(1, target.SelectedIndex);
|
|
|
+ Assert.Equal("bar", target.SelectedItem);
|
|
|
+
|
|
|
+ target.Items = new[] { "qux", "foo", "bar" };
|
|
|
+
|
|
|
+ Assert.Equal(2, target.SelectedIndex);
|
|
|
+ Assert.Equal("bar", target.SelectedItem);
|
|
|
+ }
|
|
|
+
|
|
|
private static void Prepare(SelectingItemsControl target)
|
|
|
{
|
|
|
var root = new TestRoot
|