Fixes #3885. ableView's CollectionNavigator sometimes doesn't work right. (#3933)

This commit is contained in:
BDisp
2025-02-28 03:55:38 +00:00
committed by GitHub
parent df9549e0a2
commit 80306c64c3
2 changed files with 24 additions and 1 deletions

View File

@@ -11,7 +11,7 @@ public class TableCollectionNavigator : CollectionNavigatorBase
/// <inheritdoc/>
protected override object ElementAt (int idx)
{
int col = tableView.SelectedColumn;
int col = tableView.FullRowSelect ? 0 : tableView.SelectedColumn;
object rawValue = tableView.Table [idx, col];
ColumnStyle style = tableView.Style.GetColumnStyleIfAny (col);

View File

@@ -3364,6 +3364,29 @@ A B C
Application.Top.Dispose ();
}
[Theory]
[InlineData (true, 0, 1)]
[InlineData (true, 1, 1)]
[InlineData (false, 0, 1)]
[InlineData (false, 1, 0)]
public void TableCollectionNavigator_FullRowSelect_True_False (bool fullRowSelect, int selectedCol, int expectedRow)
{
TableView tableView = new () { FullRowSelect = fullRowSelect, SelectedColumn = selectedCol};
tableView.BeginInit ();
tableView.EndInit ();
DataTable dt = new ();
dt.Columns.Add ("A");
dt.Columns.Add ("B");
dt.Rows.Add (1, 2);
dt.Rows.Add (3, 4);
tableView.Table = new DataTableSource (dt);
tableView.SelectedColumn = selectedCol;
Assert.Equal (expectedRow, tableView.CollectionNavigator.GetNextMatchingItem (0, "3".ToCharArray () [0]));
}
/// <summary>
/// Creates 3 views on <see cref="Application.Current"/> with the focus in the
/// <see cref="TableView"/>. This is a helper method to setup tests that want to