Agrupamento de dados no DataGrid do Silverlight 4
Conforme pedidos e prometido na minha palestra do teched sobre Aplicações Silverlight com RIA Services, a seguir segue o código para criar dados agrupados. O ponto chave é o PropertyGroupDescriptions o qual vc define quem será o grupo.
<CollectionViewSource x:Key="eventosViewSource"
Source="{Binding Path=Sessoes}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="EventTrack" />
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
<CollectionViewSource x:Key="eventosViewSource"
Source="{Binding Path=InscritosSessao}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName=“HoraInicial" />
</CollectionViewSource.GroupDescriptions>
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName=“HoraInicial" />
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
Veja um exemplo de dados agrupados. O mais legal de tudo é que vc pode definir isto em tempo de execução.

Caso queira via programação, a dica é criar um PagedCollectionView.
private PagedCollectionView view;
Preencha o view com uma coleção de dados:
view = new PagedCollectionView(colecao);
E por fim, configure a propriedade que será o grupo e preencha o DataGrid:
view.GroupDescriptions.Add(new PropertyGroupDescription("Propriedade"));
MeuDataGrid.ItemsSource = view;
Espero que isto o ajude a descobrir este fantástico mundo do SIlverlight 4.