это действительно хороший ресурс, внизу вы можете скачать пример проекта.Я думаю, что вы ищете в функциях GetFirstVisibleIndex и GetLastVisibleIndex.Я перечислил их ниже для удобства.По сути, у вас будет отслеживание смещения, насколько далеко находится «верх» вашего списка.это в сочетании с размером элементов поможет получить значения, которые вы ищете
private int GetFirstVisibleIndex()
{
return (int)Math.Floor(_offset.Y / _itemSize.Height);
}
private int GetLastVisibleIndex()
{
return Math.Min((int)Math.Ceiling((_offset.Y + _viewport.Height) / _itemSize.Height) - 1, GetItemsCount() - 1);
}