I've come to love custom collections. My first hurdle was finding how to sort the collection on both ASP.NET pages, and in Windows Forms. Dino Esposito's Collections and Data Binding took care of the ASP.NET, and Rockford Lhotka's Sorting the Unsortable Collection and Paul Ballard's Give Your Everyday Custom Collections a Design-Time Makeover took care of the rest.
Though in having to impliment your own IComparer class, I found myself writing multiple comparer classes, and wondering how to sort by more than one column/property. The DataView has built in sorting functionality, including by multiple columns, so having to impliment your own posed a bit of a headache.
Enter Francesco Balena's Universal Comparer class. With just a bit of tweaking, this can be used on both ASP.NET pages and Windows Forms applications, and it's as simple as:
ProductCollection col = new ProductCollection();
col.ApplySort( typeof(Product), "ProductID DESC, Cost" );
Thank you Francesco!