Я пытаюсь реализовать свое первое приложение WPF с использованием шаблона проектирования MVVM.
Я создал приложение, которое связывает данные с ObservableCollection ‹>. Приложение работает нормально, но я ожидаю, что сетка данных повторно отсортирует строки, когда я щелкну заголовки столбцов.
Я исследовал сообщения, в которых говорилось: источник данных должен реализовывать IEnumerable, мой -. Мне нужно установить CanUserSortColumns и / или CanUserSort (для каждого столбца), я это сделал. Я мог реализовать настраиваемую сортировку, указав функцию обратного вызова Sorting, я это сделал.
Кажется, ничего из этого не помогло. В отладчике моя функция _customerGrid_Sorting никогда не вызывается, и щелчок по заголовкам столбцов не имеет никакого эффекта.
Мне что-то не хватает в следующем XAML? Есть ли еще один интерфейс, который мне нужно реализовать? Я чувствую себя очень потерянным сейчас, поэтому любая помощь приветствуется.
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>