所以我有这样的事情:
List<Customer> customers;
customers = Customer.databaseproc(parameters);
//databaseproc() is implemented using a data reader and I know it works.
DataGridView dgv;
dgv.DataSource = customers;
这不是确切的问题,但我认为首先提供一些背景可能很重要。如果我需要提供更多/更清晰的细节,我很乐意这样做,但在这一点上,我对SqlConnection的东西以及Windows窗体都很陌生。
问题是:如果我尝试实现自定义排序(在运行时由用户确定的字段上),有没有办法让我(在上面的代码已经执行并且gridview可见之后) )以编程方式更改行的顺序以反映排序中的这些选择?
答案 0 :(得分:1)
让CustomerName
是Customer
类中的一个属性,您希望根据CustomerName对List进行排序(或者让它成为类中的任何其他属性)。然后,您可以对List进行排序,然后再次分配DataSource(就像@Plutonix的注释一样)。它会是这样的:
customers =customers.OrderBy(x => x.CustomerName).ToList(); // Sort the list
dgv.DataSource=customers ; // Re-assign the datasource
答案 1 :(得分:1)
如果要求是任何随机订单,我会这样做。
Random r = new Random();
customers =customers.OrderBy(x => r.Next(0,r.customers.Count())) // random order.
.ToList();
dgv.DataSource=customers ; // Set new DataSource.
或者,您也可以使用Guid
随机化您的列表。
customers =customers.OrderBy(x => Guid.NewGuid()) // random order.
选中此Usage Demo