您好我无法按字母顺序排序我的datagridview
这就是我填充网格的方式:
bs = new BindingSource();
bs.DataSource = db.GetProducts.ToList();
dgvInventory.DataSource = bs;
这就是我尝试排序网格的方式:
private void toolStripButton3_Click_1(object sender, EventArgs e)
{
bs.Sort = "ID DESC, Name ASC";
dgvInventory.DataSource = bs;
}
当我按下按钮时没有任何反应 这两列是数据网格中的exsist
这是屏幕:
答案 0 :(得分:5)
引自:http://msdn.microsoft.com/en-us/library/system.windows.forms.bindingsource.sort.aspx
为了支持排序,底层列表必须实现 IBindingList或IBindingListView接口。这种能力可以 通过SupportsSorting属性查询。多列排序是 当SupportsAdvancedSorting属性为true时可用。
您正在调用ToList()
扩展方法,该方法将返回List<Product>
,它不会支持其中任何一个接口,因此无法进行排序。
答案 1 :(得分:1)
当您拥有自定义对象时,您必须实现SortableBindingList。在互联网上搜索一下。这种行为的原因是底层源负责排序,而不是DataGridView。
此外,同样的问题:DataGridView Sort does not work