我有一个包含列标题的排序列表,如何重新排列 datagridview 使其与排序列表的顺序相同?
我已经尝试了下面的代码,但这并不总是有效,有些列没有正确排序。感谢您对此的任何帮助。
sortedColumnNames.Sort();
foreach (DataGridViewColumn col in dataGridView1.Columns)
{
col.DisplayIndex = sortedColumnNames.IndexOf(col.HeaderText);
}
Run Code Online (Sandbox Code Playgroud)
sortedColumnNames: 雅典克里特科孚岛凯法利尼亚岛米科诺斯罗德岛圣托里尼斯基亚索斯桑特岛
我不知道您的问题是否SortedColumnNames
是排序不正确(事实并非如此),或者是否为列分配的顺序与列表中显示的顺序不同。
如果是后者,它可以想见是因为您正在修改的集合中的项目的顺序,你迭代超过它。尽管我在运行的任何测试中都没有看到这种情况发生。
作为一般规则,我不会弄乱我正在迭代的集合的成员资格或顺序。我以这种方式实现列排序:
void SortDataGridViewColumns(DataGridView dgv)
{
var list = from DataGridViewColumn c in dgv.Columns
orderby c.HeaderText
select c;
int i = 0;
foreach (DataGridViewColumn c in list)
{
c.DisplayIndex = i++;
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3004 次 |
最近记录: |