|
|
|
@ -232,6 +232,39 @@ namespace Avalonia.Controls.UnitTests.Selection |
|
|
|
Assert.Contains(nameof(target.SelectedItem), changed); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Raises_Selection_Changed_On_Item_Move() |
|
|
|
{ |
|
|
|
var items = new AvaloniaList<string>(new[] { "foo", "bar", "baz" }); |
|
|
|
var target = CreateTarget(source: items); |
|
|
|
|
|
|
|
target.SelectedIndex = 1; |
|
|
|
|
|
|
|
var changed = new List<string>(); |
|
|
|
|
|
|
|
target.PropertyChanged += (s, e) => changed.Add(e.PropertyName); |
|
|
|
|
|
|
|
var oldSelectedIndex = target.SelectedIndex; |
|
|
|
var oldSelectedItem = target.SelectedItem; |
|
|
|
|
|
|
|
|
|
|
|
var sel = items[1]; |
|
|
|
var other = items[2]; |
|
|
|
|
|
|
|
items[2] = sel; |
|
|
|
items[1] = other; |
|
|
|
|
|
|
|
Assert.NotEqual(oldSelectedIndex, target.SelectedIndex); |
|
|
|
Assert.NotEqual(oldSelectedItem, target.SelectedItem); |
|
|
|
|
|
|
|
Assert.Equal(-1, target.SelectedIndex); |
|
|
|
Assert.Equal(null, target.SelectedItem); |
|
|
|
|
|
|
|
Assert.Contains(nameof(target.SelectedIndex), changed); |
|
|
|
Assert.Contains(nameof(target.SelectedItem), changed); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Preserves_SelectedItem_On_Items_Reset() |
|
|
|
{ |
|
|
|
|