Browse Source

VirtualizingStackPanel: fix selection wrapping

pull/10058/head
Dmitry Zhelnin 4 years ago
committed by DmitryZhelnin
parent
commit
65d8e46fa6
  1. 2
      src/Avalonia.Controls/VirtualizingStackPanel.cs
  2. 7
      tests/Avalonia.Controls.UnitTests/ListBoxTests.cs

2
src/Avalonia.Controls/VirtualizingStackPanel.cs

@ -226,7 +226,7 @@ namespace Avalonia.Controls
{
if (toIndex < 0)
toIndex = count - 1;
else if (toIndex >= count - 1)
else if (toIndex >= count)
toIndex = 0;
}

7
tests/Avalonia.Controls.UnitTests/ListBoxTests.cs

@ -759,6 +759,7 @@ namespace Avalonia.Controls.UnitTests
var lbItems = target.GetLogicalChildren().OfType<ListBoxItem>().ToArray();
var first = lbItems.First();
var beforeLast = lbItems[^2];
var last = lbItems.Last();
first.Focus();
@ -769,6 +770,12 @@ namespace Avalonia.Controls.UnitTests
RaiseKeyEvent(target, Key.Up);
Assert.Equal(true, last.IsSelected);
RaiseKeyEvent(target, Key.Up);
Assert.Equal(true, beforeLast.IsSelected);
RaiseKeyEvent(target, Key.Down);
Assert.Equal(true, last.IsSelected);
RaiseKeyEvent(target, Key.Down);
Assert.Equal(true, first.IsSelected);

Loading…
Cancel
Save