I'm working on a project where we need to group a WPF DataGrid which is bound to a virtual IList<T> (virtual meaning the IList<T>
uses data virtualization, where only a small subset of records is kept in memory). In my research on how to accomplish it I came across this thread
http://social.msdn.microsoft.com/Forums/vstudio/en-US/9cbccff8-747e-4754-9545-4543ba8760be/icollectionview-grouping
An excerpt from this thread identifies the main problem, it states "The real issue is that CollectionViewGroup implements its own
storage for its items (as an ObservableCollection), and doesn't allow subclasses to use some other way of storing the items."
This was back in October of 2006. It was suggested that CollectionViewGroup would be modified to be more generic (allowing you to specify the storage for its items) in a future release. From the .NET 4.5 documentation it seems CollectionViewGroup
still suffers from the same problem. Is there a way to specify an IList for the items in CollectionViewGroup? Is CollectionViewGroup class the only type the WPF framework will work with when grouping? Is there a way to support grouping when
bound to a virtual IList<T>?
NOTE: My data grid will always be sorted based on the grouping which eliminates many if not all of the problems of implementing data virtualization
and grouping identified in the above thread.