|
|
@@ -531,6 +531,7 @@ namespace Avalonia.Controls.UnitTests.Primitives
|
|
|
};
|
|
|
|
|
|
target.ApplyTemplate();
|
|
|
+ target.Presenter.ApplyTemplate();
|
|
|
target.SelectedIndex = 1;
|
|
|
|
|
|
Assert.Equal(items[1], target.SelectedItem);
|
|
|
@@ -549,6 +550,45 @@ namespace Avalonia.Controls.UnitTests.Primitives
|
|
|
Assert.NotNull(receivedArgs);
|
|
|
Assert.Empty(receivedArgs.AddedItems);
|
|
|
Assert.Equal(new[] { removed }, receivedArgs.RemovedItems);
|
|
|
+ Assert.False(items.Single().IsSelected);
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void Removing_Selected_Item_Should_Clear_Selection_With_BeginInit()
|
|
|
+ {
|
|
|
+ var items = new AvaloniaList<Item>
|
|
|
+ {
|
|
|
+ new Item(),
|
|
|
+ new Item(),
|
|
|
+ };
|
|
|
+
|
|
|
+ var target = new SelectingItemsControl();
|
|
|
+ target.BeginInit();
|
|
|
+ target.Items = items;
|
|
|
+ target.Template = Template();
|
|
|
+ target.EndInit();
|
|
|
+
|
|
|
+ target.ApplyTemplate();
|
|
|
+ target.Presenter.ApplyTemplate();
|
|
|
+ target.SelectedIndex = 0;
|
|
|
+
|
|
|
+ Assert.Equal(items[0], target.SelectedItem);
|
|
|
+ Assert.Equal(0, target.SelectedIndex);
|
|
|
+
|
|
|
+ SelectionChangedEventArgs receivedArgs = null;
|
|
|
+
|
|
|
+ target.SelectionChanged += (_, args) => receivedArgs = args;
|
|
|
+
|
|
|
+ var removed = items[0];
|
|
|
+
|
|
|
+ items.RemoveAt(0);
|
|
|
+
|
|
|
+ Assert.Null(target.SelectedItem);
|
|
|
+ Assert.Equal(-1, target.SelectedIndex);
|
|
|
+ Assert.NotNull(receivedArgs);
|
|
|
+ Assert.Empty(receivedArgs.AddedItems);
|
|
|
+ Assert.Equal(new[] { removed }, receivedArgs.RemovedItems);
|
|
|
+ Assert.False(items.Single().IsSelected);
|
|
|
}
|
|
|
|
|
|
[Fact]
|