Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DataGridView自动排序不';数据源绑定时无法工作_C#_.net_Winforms_Datagridview - Fatal编程技术网

C# 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

我的问题是: 当我将数据源绑定到DataGridView时

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的实现。