数据源绑定时,DataGridView自动排序不起作用

man*_*ive 14 .net c# datagridview winforms

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

BindingList<Contract> contracts = new BindingList<Contract>(Contract.GetAll());
dgEndingContracts.DataSource = contracts.Where(c => c.ExpirationDate <= nextMonth && c.IsArchived == false).ToList();
Run Code Online (Sandbox Code Playgroud)

并设置每列,SortMode = DataGridViewColumnSortMode.Automatic 当我点击dataGridView标题行不排序.

但是当我手动创建每一列时,每行dataGridView创建并填充数据,并将set column sort模式设置为自动,排序工作正常.

有什么区别,如何在第一种方法中启用排序?

man*_*ive 55

我找到了解决方案.

它似乎的DataGridView无法排序要么List <T>BindingList<T>

所以我class SortedBindingList<T>基于以下代码添加:现在我DataGridView可以对列进行排序.

谢谢你的帮助.