查找DataGrid中当前显示的第一个和最后一个项目的索引

时间:2015-01-15 08:07:29

标签: c# wpf

在我的DataGrid中,我想找到当前显示的第一个和最后一个项目索引。这不像处理普通的旧ListBox和Scrollviewer那么容易。

有人可以告诉我怎么样?

1 个答案:

答案 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;
    }
}