在我的DataGrid中,我想找到当前显示的第一个和最后一个项目索引。这不像处理普通的旧ListBox和Scrollviewer那么容易。
有人可以告诉我怎么样?
答案 0 :(得分:0)
您可以遍历您的ItemSource&得到第一个&最后DataGridRow
。这不是一个好的解决方案,但你可以尝试这样。
DataGridRow firstRow = null;
DataGridRow lastRow = null;
for (int i = 0; i < dataGrid.Items.Count; i++)
{
DataGridRow row = (DataGridRow)dataGrid.ItemContainerGenerator.ContainerFromIndex(i);
if (row != null)
{
firstRow = row;
while (row != null)
{
row = (DataGridRow)dataGrid.ItemContainerGenerator.ContainerFromIndex(++i);
}
lastRow = (DataGridRow)dataGrid.ItemContainerGenerator.ContainerFromIndex(i - 1);
break;
}
}