The DataGrid has a few more features that require the support of the PagedCollectionView, which is found in the System.Windows.Data namespace. The PagedCollectionView wraps a collection and gives you a different way to look at it. Conceptually, the PagedCollectionView is a window onto your data, and that window can apply sorting, filtering, grouping, and paging before your data appears in a bound control like the DataGrid.
To use the PagedCollectionView, you need to explicitly create it in your code. You supply the source collection with your data as a constructor argument. You then bind the PagedCollectionView to the appropriate control instead of your original collection.
To implement this approach with the current example, ...