internal virtual void SetFirst(Vector scrollPos) { FirstInCache = VirtualizingAverages.GetStartIndex(_templatedParent, _panelOffset - _cache.GetBackCacheSize(_tempViewport, _tempAverageItem), _items, Vert); _firstInView = VirtualizingAverages.GetStartIndex(_templatedParent, _panelOffset, _items, Vert); _currentOffset = VirtualizingAverages.GetOffsetForIndex(_templatedParent, FirstInCache, _items, Vert); _numInView = 0; _numInCache = 0; NumInFullView = 0; var av = VirtualizingAverages.GetEstimatedAverage(_templatedParent, _items, Vert); _tempAverageItem = Vert ? av.Height : av.Width; }
internal override void SetFirst(Vector scrollPos) { _firstInView = (int)(Vert ? scrollPos.Y : scrollPos.X); if (_items is IGroupingView gv) { _firstInView = gv.GetLocalItemPosition(_firstInView); } ScrollOffset = (int)(Vert ? scrollPos.Y : scrollPos.X) - _firstInView; _currentOffset = VirtualizingAverages.GetOffsetForIndex(_templatedParent, _firstInView, _items, Vert); FirstInCache = VirtualizingAverages.GetStartIndex(_templatedParent, _currentOffset - _cache.GetBackCacheSize(_tempViewport, _tempAverageItem), _items, Vert); _currentOffset = VirtualizingAverages.GetOffsetForIndex(_templatedParent, FirstInCache, _items, Vert); _numInView = 0; _numInCache = 0; NumInFullView = 0; var av = VirtualizingAverages.GetEstimatedAverage(_templatedParent, _items, Vert); _tempAverageItem = Vert ? av.Height : av.Width; }