当用户在事件dataGridViewStudents_CellValueChanged中编辑单元格值时。数据网格值相应地排序。
private void form_Load(object sender, EventArgs e)
{
List<student> lststudent=new List<student>();
lststudent.add("1","Abc", 26);
lststudent.add("1","xyz", 31);
lststudent.add("1","pqr", 53);
lststudent.add("1", "def", 23);
DataGridView.DataSource= lststudent;
}
private void datagridStudent_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
DataGridViewCell cell = null;
if (e.RowIndex > -1 && e.ColumnIndex > -1)
{
cell = ((DataGridView)sender).Rows[e.RowIndex].Cells[e.ColumnIndex];
((DataGridView)sender).Rows[e.RowIndex].Cells[2].Value = 36; ((DataGridView)sender).Sort(((DataGridView)sender).Columns["marks"], ListSortDirection.Ascending);
}
}
在此代码中,当用户编辑datagrid中的单元格时。它不会根据该列对数据网格进行排序。 datagrid与list绑定。所以,我想在用户更改单元格值时对数据网格进行排序。
答案 0 :(得分:1)
private void datagridStudent_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
var t = ((List<Student>)DataGridView.DataSource).OrderBy(x=>x.Marks).ToList();
//or var t =((List<Student>)DataGridView.DataSource).OrderByDescending(x=>x.Marks).ToList();
DataGridView.DataSource = t;
}