【发布时间】:2025-12-05 11:55:01
【问题描述】:
为看起来蹩脚的“网格”道歉:(
我有一个包含 2 列(名称和状态)的未绑定数据网格,并且两列都自动排序。 按状态排序时,不保持名称的字母排序。它可能看起来像这样:
姓名/状态
E / X
C/X
A/X
B/Y
日/年
我试图让 Status 列按字母顺序排序,并在 Name 上进行次要(总是 ASCENDING)排序。这是预期的结果(状态升序):
姓名/状态
A/X
C/X
E / X
B/Y
日/年
或状态降序
姓名/状态
B/Y
日/年
A/X
C/X
E / X
我知道我可能需要以编程方式对 Status 进行排序,但不确定如何实现它,也不确定如何触发它(不会覆盖 ColumnHeaderMouseClick 禁用对 Name 的自动排序?)。
欣赏任何想法或线索!
【问题讨论】:
-
你试过简单的谷歌搜索
DataGridView.Sort Method()DataGridView.Sort -
我做到了。结果主要与绑定数据源和/或按多列排序有关。在这里发布了一个问题,因为我认为我的情况有点不同。谢谢。
-
不幸的是,.NET 中的大多数排序似乎都不稳定。然而,LINQ 中的所有类型都是稳定的。因此,您可以将数据推送到列表中,使用订单并将其抽回。或者毕竟使用 DataBinding.. 或者您可以编写自定义排序,但我相信 LINQ 方式会更简单编码..
-
请看我更正的答案。我以为你想要一个稳定的排序,但这更容易..
标签: c# winforms sorting datagridview