是否存在以编程方式基于多个属性应用WPF DataGrid
排序的方法?
我有一个多列DataGrid
,其中包含一列,我一直希望在对其他列进行排序时在值的分组中按字母顺序排列。
我见过的所有自定义排序实现都使用IComparer
,但这仅在与之关联的单列中提供值。
例如,如果我们有以下两列未排序的数据:
A
1
D
2
C
2
B
1
如果我们对第二列进行排序,则第一列将在每个分组中被任意排序:
A
1
B
1
D
2
C
2
我要寻找的是第二列中任何具有相同值的组,第一列按字母顺序排列:
A
1
B
1
C
2
D
2
IComparer
是否有替代方法可以公开完整模型?
答案 0 :(得分:1)
您是否研究过SortMemberPath?
<DataGrid.Columns>
<DataGridTextColumn Header="Some Caption" Width="200"
CanUserSort="True"
Binding="{Binding SomeDataField}"
SortMemberPath="OtherNonShowingField"/>
</DataGrid.Columns>
因此,如果您要列出列表中的数据 或通过DataTable通过其DataColumn引用从DataTable中,您总是可以添加在该字段中具有合并的A + B部分的另一个字段或列。因此,即使您不显示该列,它也可以用作排序的基础。