ユーザーが xceed グリッド コントロールで下にスクロールし始めたときを検出しようとしています。スクロールバーの位置と、現在画面に表示されている行を知りたいです (インデックスで十分です)。
これを達成する方法はありますか?
ユーザーが 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);
}
}