我正在尝试对数字内容进行列排序。多绑定转换器工作正常。此解决方案将 SortMemberPath 设置为 null
我尝试了各种方法,并大量搜索了互联网。
出于安全目的,代码已从原始版本进行了修改。
<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>
编辑:我找到了一种无需多重绑定即可使数据绑定工作的方法,但排序仍然不起作用。由于 DataGrid 绑定到自定义类,因此我采用整个值并从中进行转换,从而减少了对 MultiBinding 的需求。
<DataGridTextColumn x:Name="avgPriceColumn" Binding="{Binding Converter={StaticResource avgPriceConverter}}" SortMemberPath="{Binding Converter={StaticResource avgPriceConverter}}" />
在这两个选项中,SortMemberPath 默认设置为 Binding,所以我不需要像我一样显式定义它
但是,这最终会将 SortMemberPath 值设置为 null,这与适用于我的代码环境的自定义约束冲突,并且不会排序。所以我仍然对更好的解决方案感兴趣。
编辑:
更改了其他地方的冲突代码以允许重复的 SortMemberPath,不支持对某些列进行排序,以及对某些邻列值进行排序