C# Xceed WPF网格中的滚动位置和可见行索引

C# Xceed WPF网格中的滚动位置和可见行索引,c#,wpf,wpfdatagrid,xceed,xceed-datagrid,C#,Wpf,Wpfdatagrid,Xceed,Xceed Datagrid,我试图检测用户何时开始在xceed网格控件中向下滚动。我想知道滚动条的位置是什么,以及屏幕上当前显示的行(索引就足够了) 有什么办法可以做到这一点吗?对于基于项目滚动的DataGrid,请尝试以下方法 private void DataGrid_ScrollChanged(object sender, ScrollChangedEventArgs e) { var datagrid = sender as DataGrid; var view = CollectionViewSo

我试图检测用户何时开始在xceed网格控件中向下滚动。我想知道滚动条的位置是什么,以及屏幕上当前显示的行(索引就足够了)


有什么办法可以做到这一点吗?

对于基于项目滚动的
DataGrid
,请尝试以下方法

private void DataGrid_ScrollChanged(object sender, ScrollChangedEventArgs e)
{
    var datagrid = sender as DataGrid;
    var view = CollectionViewSource.GetDefaultView(datagrid.ItemsSource) as CollectionView;

    if (view != null && view.Count > 0)
    {
        int firstIndex = (int)e.VerticalOffset;
        var firstItem = view.GetItemAt(firstIndex);

        int lastIndex = Math.Min(view.Count - 1, (int)(e.VerticalOffset + e.ViewportHeight));
        var lastItem = view.GetItemAt(lastIndex);
    }
}

您需要它做什么?我正在编写一个应用程序,它将定期从web中提取数据并在网格中显示。我想获取最少数量的行,即仅获取当前需要显示的行。一旦用户开始滚动,我将切换到模式,根据滚动条的位置按需获取更多页面的数据。