WPF Toolkit DataGrid コントロールについて話していると仮定すると、CanUserSortColumns プロパティを true に設定し、DataGrid 内の各 DataGridColumnの SortMemberPath プロパティを設定するだけで済みます。
最初にコレクションを並べ替える限り、CollectionViewSource を使用して並べ替えを設定し、それを DataGrid の ItemsSource として割り当てる必要があります。XAML でこれを行っている場合は、次のように簡単になります。
<Window.Resources>
<CollectionViewSource x:Key="MyItemsViewSource" Source="{Binding MyItems}">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="MyPropertyName"/>
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
</Window.Resources>
<DataGrid ItemsSource="{StaticResource MyItemsViewSource}">
</DataGrid>
注:「scm」名前空間プレフィックスは、SortDescription クラスが存在する System.ComponentModel にマップされます。
xmlns:scm="clr-namespace:System.ComponentModel;assembly=WindowsBase"
編集:この投稿から十分な数の人々が助けを得たと思います。この投票されたコメントをこの回答に含める必要があります:
これを機能させるには、これを使用する必要がありました。
<DataGrid ItemsSource="{Binding Source={StaticResource MyItemsViewSource}}">