I love ObjectListView. It’s a solid, well-written control, and what’s more, it plays nice with NHibernate. When you use NHibernate to lazy-load a long list of items, any non-lazy proxy fields will be loaded by NHibernate as the ObjectListView accesses them.

Unfortunately, the same cannot be said for the TreeListView, also part of the ObjectListView package. This control does not like lazy-loaded fields, and will crash on a null pointer exception if you try to use them. Be warned.