我需要对一个DataGridView进行自然排序(像资源管理器一样),以便在同一列中数字和文本可以自然排序,而不是按字母顺序排序(例如,“place 3”排在“place 20”之前等)。 我有一个DataGridView,已将DataView设置为DataSource。 DataView包含从数据库创建的一些值的DataTable。 列类型为字符串。我有一个IComparer,它可以正常工作,但我无法弄清楚如何使用它,因为我找不到如何进行排序。 DataGridView.SortCompare事件非常完美,但它不起作用,因为它是数据绑定的。DataView.Sort只接受带有列名称和排序方式的字符串。
非常烦人。尝试在StackOverflow上阅读相关问题,并且搜索了很多谷歌,但我实际上找不到太多关于这个问题的内容。我真正发现的唯一东西是使用dataview的Sort(string)方法,但它无法正常工作,因为它按字母顺序排序。
有没有人知道如何在不太麻烦的情况下解决这个问题? 除了我之外还有其他人在与这个问题斗争吗?我真的不想重新实现整个datagridview或dataview类,只是为了获得自定义排序...
更新: 如果有人想知道,我仍在寻找一个好的答案来解决这个问题。虽然在此期间,我最终创建了自己的简单表类,然后手动将其提供给datagridview。重写SortCompare方法。比较烦人,但并不太难,因为我只需要显示值(无需编辑或其他操作),因此可以将所有内容转换为字符串。
非常烦人。尝试在StackOverflow上阅读相关问题,并且搜索了很多谷歌,但我实际上找不到太多关于这个问题的内容。我真正发现的唯一东西是使用dataview的Sort(string)方法,但它无法正常工作,因为它按字母顺序排序。
有没有人知道如何在不太麻烦的情况下解决这个问题? 除了我之外还有其他人在与这个问题斗争吗?我真的不想重新实现整个datagridview或dataview类,只是为了获得自定义排序...
更新: 如果有人想知道,我仍在寻找一个好的答案来解决这个问题。虽然在此期间,我最终创建了自己的简单表类,然后手动将其提供给datagridview。重写SortCompare方法。比较烦人,但并不太难,因为我只需要显示值(无需编辑或其他操作),因此可以将所有内容转换为字符串。