gpt4 book ai didi

c# - 按 Column.DisplayMember 对 DataGridView 进行排序

转载 作者:太空宇宙 更新时间:2023-11-03 11:22:46 24 4
gpt4 key购买 nike

我有一个 DataGridView 和一些 DataGridViewComboBoxColumn,其中实际值与 ID 相关联,但 DisplayMember 是对应的字符串在查找表中。我试图做到这一点,当我按该列排序时,排序是基于 DisplayMember 而不是 ValueMember 完成的。我知道这已在 this question 中解决但答案不够深入,我也没有理解。

到目前为止我尝试了什么

  • 绑定(bind)到 SortCompare 事件但发现它没有在数据绑定(bind)列上触发。
  • ColumnHeaderMouseClick 事件上手动排序,但 DataGridViewRowCollection 中的行是只读的,我无法以编程方式在数据绑定(bind)集合中插入行(交换时)。
  • 创建一个隐藏的 DataGridViewTextBoxColumn,其中单元格自动设置为原始列的 DisplayMember,然后尝试对该列进行排序。但是,数据绑定(bind)集合无法根据无界列进行排序。

编辑:进一步澄清:我试图根据组合框的 DisplayMember 对整个 DataGridView 进行排序,而不是对组合框本身。

如何根据数据绑定(bind) DataGridViewComboBoxColumnDisplayMemberDataGridView 进行排序?

最佳答案

您的第三次尝试几乎是正确的:您需要做的是在数据集中创建一个额外的列来存储 DisplayMember 的值。然后,您创建一个不可见的绑定(bind) DataGridViewColumn,并将其绑定(bind)到这个额外的 DataSet 列。然后它是一个绑定(bind)列,您可以以编程方式对其进行排序。

您链接到的问题也是这样做的,只是该解决方案是在将显示成员文本返回给应用程序之前在 SQL 中生成显示成员文本。

您会认为这很简单,不是吗? :)

关于c# - 按 Column.DisplayMember 对 DataGridView 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10386882/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com