我尝试订购我的datagridview但不能。在网上我找到并修改了这个:
List<DataGridViewRow> q = (from item in dataGridView1.Rows.Cast<DataGridViewRow>()
orderby item.Cells[0].Value descending
select item).ToList<DataGridViewRow>();
但它不起作用,因为我不知道如何将此列表分配给我的datagridview的数据源。
也许,这不是正确的形式。在其他项目中,我将数据放在我的datagridview列表中,然后在列表中执行linq查询,它就可以了。在datagridview中怎么样?
答案 0 :(得分:1)
只需使用DataGridView.Sort()
方法:
dataGridView1.Sort(dataGridView1.Columns[0], ListSortDirection.Descending);
如果您决定使用LINQ(可能是更复杂的排序,或以其他方式操纵数据),最好采用原始数据源(即列表),就像您说的那样之前完成的。
我认为你不能以通用的方式做你想做的事,因为DataSource
是object
,所以最终你需要施放DataSource
返回到您用于填充DataGridView
的原始数据类型。
答案 1 :(得分:1)
试试这个,
List<DataGridViewRow> q = (from item in dataGridView1.Rows.Cast<DataGridViewRow>()
orderby item.Cells[0].Value descending
select item).ToList<DataGridViewRow>();
dataGridView1.DataSource = q.Select(x => x.DataBoundItem).Cast<Employee>().ToList();
对于演员而言,我已通过Employee
,但你需要通过你的课而不是Employee
或者您可以在不进行强制转换的情况下绑定数据源,例如
dataGridView1.DataSource = q.Select(x => x.DataBoundItem).ToList();