This post updates the custom sorting technique that Manish Dalal originally posted for Silverlight 2 and adds paging support.
Silverlight 3 includes PagedCollectionView class, which provides grouping, sorting, and paging functionality for any data source that implements the IEnumerable interface. This works as long as all the data that you need to sort (and/or page) is already fetched to the client. However when you are retrieving only a limited set of data from the server at a time, you need an alternative solution that does sorting on the server.