我有一个DataGridView
有几个DataGridViewComboBoxColumn
实际值与 ID 相关联,但DisplayMember
是查找表中的字符串对应项。我试图做到这一点,以便当我按该列排序时,排序是根据DisplayMember
,不是ValueMember
。我知道这个问题已在这个问题但答案不够深入,我也不明白。
到目前为止我尝试过的
- 绑定到
SortCompare
事件,但发现它没有在数据绑定列上触发。
- 手动排序
ColumnHeaderMouseClick
事件,但行在DataGridViewRowCollection
是只读的,我无法以编程方式在数据绑定集合上插入行(交换时)。
- 创建一个隐藏的
DataGridViewTextBoxColumn
其中单元格自动设置为DisplayMember
原始列,然后尝试对该列进行排序。但是,数据绑定集合无法基于无界列进行排序。
Edit:进一步澄清:我正在尝试对整个DataGridView
基于DisplayMember
的组合框,而不是对组合框本身进行排序。
我怎样才能排序DataGridView
基于DisplayMember
数据绑定的DataGridViewComboBoxColumn
?
您的第三次尝试几乎是正确的:您需要做的是在 DataSet 中创建一个额外的列来存储 DisplayMember 的值。然后,创建一个不可见的绑定 DataGridViewColumn,并将其绑定到这个额外的 DataSet 列。然后它是一个绑定列,而你can以编程方式对其进行排序。
您链接到的问题也是这样做的,只是该解决方案是在 SQL 中生成显示成员文本,然后再将其返回到应用程序。
您会认为这很简单,不是吗? :)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)