|
|
@@ -53,7 +53,7 @@ namespace Avalonia.Controls.UnitTests.Primitives
|
|
|
}
|
|
|
|
|
|
[Fact]
|
|
|
- public void Assigning_SelectedItems_Should_Set_SelectedIndex()
|
|
|
+ public void Assigning_Single_SelectedItems_Should_Set_SelectedIndex()
|
|
|
{
|
|
|
var target = new TestSelector
|
|
|
{
|
|
|
@@ -62,9 +62,51 @@ namespace Avalonia.Controls.UnitTests.Primitives
|
|
|
};
|
|
|
|
|
|
target.ApplyTemplate();
|
|
|
+ target.Presenter.ApplyTemplate();
|
|
|
target.SelectedItems = new AvaloniaList<object>("bar");
|
|
|
|
|
|
Assert.Equal(1, target.SelectedIndex);
|
|
|
+ Assert.Equal(new[] { "bar" }, target.SelectedItems);
|
|
|
+ Assert.Equal(new[] { 1 }, SelectedContainers(target));
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void Assigning_Multiple_SelectedItems_Should_Set_SelectedIndex()
|
|
|
+ {
|
|
|
+ // Note that we don't need SelectionMode = Multiple here. Multiple selections can always
|
|
|
+ // be made in code.
|
|
|
+ var target = new TestSelector
|
|
|
+ {
|
|
|
+ Items = new[] { "foo", "bar", "baz" },
|
|
|
+ Template = Template(),
|
|
|
+ };
|
|
|
+
|
|
|
+ target.ApplyTemplate();
|
|
|
+ target.Presenter.ApplyTemplate();
|
|
|
+ target.SelectedItems = new AvaloniaList<string>("foo", "bar", "baz");
|
|
|
+
|
|
|
+ Assert.Equal(0, target.SelectedIndex);
|
|
|
+ Assert.Equal(new[] { "foo", "bar", "baz" }, target.SelectedItems);
|
|
|
+ Assert.Equal(new[] { 0, 1, 2 }, SelectedContainers(target));
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void Selected_Items_Should_Be_Marked_When_Panel_Created_After_SelectedItems_Is_Set()
|
|
|
+ {
|
|
|
+ // Issue #2565.
|
|
|
+ var target = new TestSelector
|
|
|
+ {
|
|
|
+ Items = new[] { "foo", "bar", "baz" },
|
|
|
+ Template = Template(),
|
|
|
+ };
|
|
|
+
|
|
|
+ target.ApplyTemplate();
|
|
|
+ target.SelectedItems = new AvaloniaList<string>("foo", "bar", "baz");
|
|
|
+ target.Presenter.ApplyTemplate();
|
|
|
+
|
|
|
+ Assert.Equal(0, target.SelectedIndex);
|
|
|
+ Assert.Equal(new[] { "foo", "bar", "baz" }, target.SelectedItems);
|
|
|
+ Assert.Equal(new[] { 0, 1, 2 }, SelectedContainers(target));
|
|
|
}
|
|
|
|
|
|
[Fact]
|