Virtual ListViews - Name for Speed
ListView. Huh? Come on, you all know it - the right pane of Windows Explorer. That is, where contents of folders are displayed. Whenever you see large icons, or small items listed in columns, or a list of items with details in other columns, it is always one and the same control - ListView. Kind of a Listbox, but much, much better and powerful. ListView control came into this world with Windows Explorer back in WIndows 95, and got numerous enhancements eversince. ListView is very convenient when it comes to display a list of items. It can even substitute grid controls for read-only data in many cases, as ListView can display multiple columns per data item. Add support for icons, check boxes, grouping and different layouts, and you have a real beauty. How to use ListViews is out of the scope of this post. If you want to learn it - just google for it. There are tons of tutorials out there.
Great as they are, ListView contols can be very slow with large number of items (like tens of thousands), especially while populating with data. Furthermore, by default ListView stores all its items internally. In case you populate the List View from an in-memory collection, you end up with doubled memory usage. Another thing to be worried about when working with tons of data.
The solution to both the performance and memory-usage issues is to use Virtual ListViews.