Winforms 按DisplayMember对DataGridView排序

Winforms 按DisplayMember对DataGridView排序,winforms,Winforms,我有一个绑定到DataTable的DataGridView。在这个表中有一些外键。然后,我使用CellFormatting事件从另一个数据库表中为每个外键获取相应的文本 我想在用户单击标题时对DataGridView进行排序。自动排序可以工作,但不正确,因为它是在ValueMember ForeignKey ID上排序,而不是在DisplayMember文本上排序 我尝试使用SortCompare事件,但后来发现它在使用DataSource属性的DataGridView上不起作用 如何做到这一点

我有一个绑定到DataTable的DataGridView。在这个表中有一些外键。然后,我使用CellFormatting事件从另一个数据库表中为每个外键获取相应的文本

我想在用户单击标题时对DataGridView进行排序。自动排序可以工作,但不正确,因为它是在ValueMember ForeignKey ID上排序,而不是在DisplayMember文本上排序

我尝试使用SortCompare事件,但后来发现它在使用DataSource属性的DataGridView上不起作用

如何做到这一点


谢谢

通过在初始语句中添加嵌套的select语句修复了此问题

由此:

选择id、列1、列2、列3\u fk 从db_表 为此:

选择id,第1列,第2列,第3列\u fk, 从db_表2中选择描述 其中id=db_table 1.column3_fk 如fk_所述 来自db_表1
通过在初始语句中添加嵌套的select语句修复了此问题

由此:

选择id、列1、列2、列3\u fk 从db_表 为此:

选择id,第1列,第2列,第3列\u fk, 从db_表2中选择描述 其中id=db_table 1.column3_fk 如fk_所述 来自db_表1