Have a look at the answer to this question: Trigger Filter on CollectionViewSource
It shows an MVVM way of adding a CollectionSourceView by wrapping the traditional Items in the ViewModel.
As far as I can see this way you are not violating MVVM and still get to use the nice grouping, filtering and sorting features.
Do not feel bad because you are not using CollectionViewSources in Xaml as most examples do; in fact, I felt way better using them in code, in the ViewModel.
To manipulate the filtering, grouping and sorting I add commands to the ViewModel and in the execute I change the ICollectionView