Browse Source

Merge pull request #9699 from AvaloniaUI/fixes/7974-selectionmodel-eventargs-indexer

Fix SelectionModelSelectionChangedEventArgs.SelectedItems indexer.
release/0.10.19
Max Katz 3 years ago
committed by Steven Kirk
parent
commit
730e08d94d
  1. 4
      src/Avalonia.Controls/Selection/SelectedItems.cs
  2. 19
      tests/Avalonia.Controls.UnitTests/Selection/SelectionModelTests_Single.cs

4
src/Avalonia.Controls/Selection/SelectedItems.cs

@ -37,9 +37,9 @@ namespace Avalonia.Controls.Selection
{
return _owner.SelectedItem;
}
else if (Items is object)
else if (Items is not null && Ranges is not null)
{
return Items[index];
return Items[IndexRange.GetAt(Ranges, index)];
}
else
{

19
tests/Avalonia.Controls.UnitTests/Selection/SelectionModelTests_Single.cs

@ -1,5 +1,6 @@
using System;
using System.Collections.Specialized;
using System.Linq;
using Avalonia.Collections;
using Avalonia.Controls.Selection;
using Avalonia.Controls.Utils;
@ -1144,6 +1145,24 @@ namespace Avalonia.Controls.UnitTests.Selection
Assert.Equal(new[] { "foo" }, target.SelectedItems);
Assert.Equal(0, target.AnchorIndex);
}
[Fact]
public void SelectedItems_Indexer_Is_Correct()
{
// Issue #7974
var target = CreateTarget();
var raised = 0;
target.SelectionChanged += (s, e) =>
{
Assert.Equal("bar", e.SelectedItems.First());
Assert.Equal("bar", e.SelectedItems[0]);
++raised;
};
target.Select(1);
Assert.Equal(1, raised);
}
}
public class BatchUpdate

Loading…
Cancel
Save