Supponendo che si sta parlando del controllo WPF Toolkit DataGrid, è necessario impostare solo the CanUserSortColumns property su true e quindi impostare the SortMemberPath property di ogni DataGridColumn in DataGrid.
Per quanto riguarda l'ordinamento iniziale della raccolta, è necessario utilizzare CollectionViewSource e impostare l'ordinamento su quello e quindi assegnarlo come ItemsSource del proprio DataGrid. Se stai facendo questo in XAML allora sarebbe facile come:
<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>
NOTA: mappe la "SCM" prefisso namespace per System.ComponentModel dove vive classe SortDescription.
xmlns:scm="clr-namespace:System.ComponentModel;assembly=WindowsBase"
EDIT: Penso numero sufficiente di persone hanno ottenuto l'aiuto di questo post, che questo commento upvoted dovrebbe essere incluso in questa risposta:
ho dovuto usare questo per farlo funzionare:
<DataGrid ItemsSource="{Binding Source={StaticResource MyItemsViewSource}}">
fonte
2009-10-26 20:37:37
Dal WPF non viene fornito con un DataGrid integrato, si può supporre ti riferisci al DataGrid che viene fornito con WPF Toolkit (http://www.codeplex.com/wpf) ??? –
Sì, ho inserito il tag wpftoolkit, ma suppongo di non averlo menzionato nella mia domanda. Lo aggiungerò. – devuxer