WPF4 Datagrid ne pas trier les en-têtes de colonne

Je suis en train de mettre en œuvre ma première application WPF à l'aide d'un design pattern MVVM.

J'ai créé une application qui est de la liaison de données à une ObservableCollection<>. L'application rend bien, mais j'attends la grille de données pour re-trier les lignes quand je clique sur les en-têtes de colonne.

J'ai recherché des postes qui dit:
La source de données pour mettre en œuvre IEnumerable, la mienne.
J'ai besoin de CanUserSortColumns et/ou CanUserSort (sur chaque colonne), je l'ai fait.
J'ai pu mettre en œuvre un tri personnalisé en spécifiant le Tri fonction de rappel, je l'ai fait.

Aucune de ces semblent avoir contribué. Dans le débogueur, mon _customerGrid_Sorting fonction n'est jamais appelée, et en cliquant sur les en-têtes de colonne n'a aucun effet.

Ai-je raté quelque chose dans le XAML qui suit? Est-il une autre interface que j'ai besoin pour mettre en œuvre? Je me sens perdu dès maintenant, de sorte que toute aide est très appréciée.

XAML:

        <DataGrid Name="_customerGrid" 
            AutoGenerateColumns="False" 
            CanUserSortColumns="True"
            ColumnHeaderStyle="{StaticResource columnHeaderStyle}"
            HorizontalAlignment="Left" 
            ItemsSource="{Binding Path=AllCustomers}" 
            RowDetailsVisibilityMode="VisibleWhenSelected"
            RowStyle="{StaticResource DataGridRowStyle}"
            SelectionUnit="FullRow"
            Sorting="_customerGrid_Sorting"
            VerticalAlignment="Top">
            <DataGrid.Columns>
                <DataGridTemplateColumn Header="Cust ID" MinWidth="90" CanUserSort="True" >
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <Label Content="{Binding Path=CustID}" />
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
                <DataGridTemplateColumn Header="Name" MinWidth="300" CanUserSort="True" Width="*">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <Label Content="{Binding Path=Name}" />
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
            </DataGrid.Columns>
        </DataGrid>

source d'informationauteur Paul Chavez