public void Evaluate(FastListViewBase listView)
            {
                if (mouseY < topY)
                {
                    hoveredIndex = 0;
                    hoveredItem  = null;
                }
                else if (mouseY > bottomY)
                {
                    hoveredIndex = listView.itemCount - 1;
                    hoveredItem  = null;
                }

                listView.hovered = new HoveredItem()
                {
                    Index      = hoveredIndex,
                    Item       = hoveredItem,
                    IsSelected = hoveredIsSelected
                };

                listView.AutoScrollMinSize = new Size(listView.AutoScrollMinSize.Width, bottomY - listView.AutoScrollPosition.Y);

                listView.itemCount = currentIndex;

                listView.LastSelectedIndex = lastSelectedIndex;
            }
            public DrawItemHandler(Graphics graphics, int selectRangeMin, int selectRangeMax, FastListViewBase listView)
            {
                this.graphics       = graphics;
                this.selectRangeMin = selectRangeMin;
                this.selectRangeMax = selectRangeMax;

                lastSelectedItem = listView.LastSelectedItem;
                mouseY           = listView.mouseY;
                mouseX           = listView.mouseX;
                subtract         = listView.subtract;
                keepTheRest      = listView.keepTheRest;
            }