C# DataGridView自动排序不';数据源绑定时无法工作
我的问题是: 当我将数据源绑定到DataGridView时C# DataGridView自动排序不';数据源绑定时无法工作,c#,.net,winforms,datagridview,C#,.net,Winforms,Datagridview,我的问题是: 当我将数据源绑定到DataGridView时 BindingList<Contract> contracts = new BindingList<Contract>(Contract.GetAll()); dgEndingContracts.DataSource = contracts.Where(c => c.ExpirationDate <= nextMonth && c.IsArchived == false).ToList
BindingList<Contract> contracts = new BindingList<Contract>(Contract.GetAll());
dgEndingContracts.DataSource = contracts.Where(c => c.ExpirationDate <= nextMonth && c.IsArchived == false).ToList();
BindingList contracts=新的BindingList(Contract.GetAll());
dgEndingContracts.DataSource=contracts.Where(c=>c.ExpirationDate.ToList()不返回实现IBindingList的内容。
使用一些东西,比如thtat:
dgEndingContracts.DataSource = new BindingList<Contract>(contracts.Where(c => c.ExpirationDate <= nextMonth && c.IsArchived == false).ToList());
dgEndingContracts.DataSource=newbindingslist(contracts.Where)(c=>c.ExpirationDate我已经找到了解决方案
DataGridView似乎既不能排序List
也不能排序BindingList
因此,我添加了基于以下内容的classsortedbindinglist
:
现在我的DataGridView
可以对列进行排序
谢谢大家的帮助。列是否设置为在网格中自动创建?这是我唯一能想到的。我相信这是Augenerate columns属性。将AutoGenerateColumns设置为false并手动添加列也没有帮助。我希望避免在DataGridView中手动创建列和行,因为mance问题。如果您是手动创建列,那么我觉得您需要在代码中手动创建列,如果我遵循您在原始问题中所说的内容,还需要使用new
关键字来创建列。效果相同。单击列标题不会对其排序。是的,BindingList不支持这是一个如何使其可排序的示例:请参见SortableBindingListCollection的实现。