Проблема в следующем коде
<DataGridTemplateColumn Header="Cust ID" MinWidth="90" CanUserSort="True" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Label Content="{Binding Path=CustID}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Сортировка по умолчанию работает, как указано везде, только для DataGridTextColumn, DataGridComboBoxColumn и т. Д.
Теперь здесь таблица не знает, как сортировать, потому что вы определили шаблон данных и метку внутри него.Кто-то другой может определить SstackTemplate и т. Д. Внутри DataTemplate.Поэтому DataGrid не будет знать, как его сортировать.
Я постараюсь опубликовать вам пример кода очень скоро, как мы можем сделать для такого DataGridTemplateColumn.Но надеюсь, что направление, которое я вам дал, поможет !!
Кажется, что ответ очень прост.Я попробовал это с примером DataGrid с использованием MVVM, но мое решение должно работать для вас, я чувствую Все хорошо в приведенном ниже DataGridTemplateColumn, но вам не хватает очень важного атрибута под названием SortMemberPath ,Thw WPF должен знать, по какому свойству он должен сортироваться.
Исходный текст, который вы опубликовали, выглядит следующим образом
<DataGridTemplateColumn Header="Name" MinWidth="300" CanUserSort="True" Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Label Content="{Binding Path=Name}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Я не знаю ваших структур данных.Но модифицированный должен выглядеть следующим образом
<DataGridTemplateColumn SortMemberPath="Name" Header="Name" MinWidth="300" CanUserSort="True" Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Label Content="{Binding Path=Name}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Надеюсь, это поможет вам !!Дайте мне знать, если это не поможет, я постараюсь опубликовать свое заявление в каком-нибудь блоге (хотя мне лень это делать !!)