Я пытаюсь сортировать столбцы по числовому контенту. Конвертер с несколькими связями работает нормально. Это решение установит SortMemberPath на нульDataGridColumn SortMemberPath on MultiBinding
Я пробовал разные способы и существенно помыл Интернет.
Код был изменен с оригинала в целях безопасности.
<DataGridTemplateColumn x:Name="avgPriceColumn">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock>
<TextBlock.Text>
<MultiBinding Converter="{StaticResource avgPriceConverter}">
<Binding Path="NumberToDivideBy" />
<Binding Path="TotalDollars" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.SortMemberPath>
<MultiBinding Converter="{StaticResource avgPriceConverter}">
<Binding Path="NumberToDivideBy" />
<Binding Path="TotalDollars" />
</MultiBinding>
</DataGridTemplateColumn.SortMemberPath>
</DataGridTemplateColumn>
EDIT: Я нашел способ получить привязки данных для работы без MultiBinding, но сортировка по-прежнему не работает. Поскольку DataGrid привязан к пользовательскому классу, я беру на себя всю ценность и конвертирую из него, тем самым уменьшая потребность в MultiBinding.
<DataGridTextColumn x:Name="avgPriceColumn" Binding="{Binding Converter={StaticResource avgPriceConverter}}" SortMemberPath="{Binding Converter={StaticResource avgPriceConverter}}" />
На обоих этих вариантов SortMemberPath является по умолчанию набор для связывания, так что я не нужно явно определить его, как я
Однако это заканчивается установка значения SortMemberPath обнулить, который конфликтует с пользовательскими ограничениями, применимыми к моя среда кода и не сортирует. Поэтому меня все еще интересуют лучшие решения.
EDIT:
Изменены противоречивый код в другом месте, чтобы дублирующие SortMemberPath лет, не поддерживают сортировку на некоторых столбцах, и для некоторого значения сортировки от соседних столбцов