按列对 DataGridView 进行排序.DisplayMember
本文关键字:排序 DisplayMember DataGridView | 更新日期: 2023-09-27 18:32:39
我有一个带有几个DataGridViewComboBoxColumn
的DataGridView
,其中实际值与ID相关联,但DisplayMember
是查找表中的字符串对应项。我正在尝试使它成为这样,当我按该列排序时,排序是基于DisplayMember
而不是ValueMember
完成的。我知道这个问题已经解决了这个问题,但答案不够深入,我也不明白。
到目前为止我尝试过什么
- 绑定到
SortCompare
事件,但发现它未在数据绑定列上触发。 - 手动对
ColumnHeaderMouseClick
事件进行排序,但DataGridViewRowCollection
中的行是只读的,我无法以编程方式在数据绑定集合上插入行(交换时(。 - 创建一个隐藏
DataGridViewTextBoxColumn
,其中单元格自动设置为原始列的DisplayMember
,然后尝试对该列进行排序。但是,不能基于无界列对数据绑定集合进行排序。
编辑:为了进一步澄清:我试图根据组合框的DisplayMember
对整个DataGridView
进行排序,而不是对组合框本身进行排序。
如何根据数据绑定DataGridViewComboBoxColumn
DisplayMember
对DataGridView
进行排序?
你的第三次尝试几乎是正确的:你需要做的是在数据集中创建一个额外的列来存储 DisplayMember 的值。然后,创建一个不可见的绑定数据网格视图列,并将其绑定到此额外的数据集列。然后它是一个绑定列,你可以以编程方式对其进行排序。
您链接到的问题正在执行相同的操作,只是该解决方案在返回到应用程序之前在 SQL 中生成显示成员文本。
你会认为这很简单,不是吗?:)