A supercharged .NET component to view lists
Rating: 3 out of 5 stars
Microsoft does a pretty good job of giving developers basic components to build basic Windows applications. However, they only go so far before programmers are either forced to extend their own classes to incorporate greater functionality or rely on the handiwork of others who have previously uncovered the limitations these standard controls manifest. Developer Jiri Novotny encountered this constraint with the standard .NET ListView control and decided to scratch his itch by writing his own ListView component that met 14 key criteria (e.g., flawless subitem image support, multi-column sort, column reordering with auto-scrolling; for the complete list of objectives, read his story at http://www.componentowl.com/better-listview/story). As is often the case of a talented, impassioned programmer, the drive to embody such a comprehensive list of features created a better mousetrap, or in this case, a Better ListView. Figure 1 shows The tutomatic Layout sample, one of the many demos of Better ListView in action.
In addition to creating a new ListView control to incorporate broader flexibility and functionality, Better ListView could also be called Fixed ListView, as it corrects a number of annoying problems with the standard ListView that Microsoft delivers to Visual Studio customers. For example, drag and drop and check boxes actually work they way one expects, and column headers and list sorting behave the way they do in the Windows Explorer and other native Windows OS applications. Likewise, improvements that go beyond the standard ListView, such as support for various image sizes and locations (in the column header or subitems, for example) further elevate Better ListView beyond Microsoft's offering. Figure 2 shows Better ListView's drag-and-drop functionality.
The control is very easy and intuitive to use and is well documented (see the comprehensive online class documentation), as shown in Figure 3. It only took me a few minutes to quickly explore the main user interface enhancements that were exposed in the property and method tool tabs. The bundled launcher program, which can be used to demonstrate 13 separate Better ListView features, nicely shows off the impressive amount of customization and flexibility that Better ListView has to offer.
The number of customized aspects that Better ListView has to offer is too long to list in this review, but if you're interested you can review the full comparison between the standard ListView and ComponentOwl's offering. The enhancements I found most useful for my own projects were the automatic layout, context menus, improved drag and drop, item searching, and sorting options. Thanks to both the source code–included demos, the online documentation, and the obvious property names of the control's "better" features, I was able to put the component to use faster than it took me to install the setup package. Figure 4 shows samples that ship with Better ListView.
Although I found using the control fast and intuitive, the one aspect that is a downer is the price. Considering that this is the era of .NET component bundles that offer hundreds of components, pricing this single .NET Windows Form control at the price ComponentOwl has is too high for my tastes. If the control included multiple formats beyond Windows Forms (e.g., Windows Presentation Foundation, Silverlight, ASP.NET), the price might be a bit easier to justify on the balance sheet. Given the cost and the fact that this is the only product ComponentOwl is currently offering, .NET developers might be interested in seeking out component suites that offer more bang for the buck compared to this one standalone Windows Form control. However, for those .NET coders who have been flummoxed by the limited and sometimes wonky standard ListView component and are looking for a greatly expanded replacement that works as advertised, ComponentOwl's Better ListView is certainly worth downloading the free trial and taking it for a test drive.
Mike Riley (email@example.com) is an advanced computing professional specializing in emerging technologies and new development trends. He is also a contributing editor for DevProConnections. Follow Mike on Twitter @mriley.