【发布时间】:2017-12-29 16:54:19
【问题描述】:
我在这里找到了这个关于使用通用列表对数据网格进行排序的好例子,但是我只处理列表中的 2000 条记录似乎很慢。
C# DataGridView sorting with Generic List as underlying source
在排序中似乎也不能很好地处理字符串,没有人知道我如何能够使用下面的 linq 获得更好的结果。
我在 winforms 中使用 datagridview 我现在没有 winforms 但不是我选择的现有应用程序。
private void dgProducts_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
var compareList = (dgProducts.DataSource as List<StockM>);
string strColumnName = dgProducts.Columns[e.ColumnIndex].Name;
SortOrder strSortOrder = getSortOrder(e.ColumnIndex);
if (strSortOrder == SortOrder.Ascending)
{
_allstock = _allstock.OrderBy(x => typeof(StockM).GetProperty(strColumnName).GetValue(x, null)).ToList();
}
else
{
compareList = compareList.OrderByDescending(x => typeof(StockM).GetProperty(strColumnName).GetValue(x, null)).ToList();
}
dgProducts.DataSource = compareList;
dgProducts.Columns[e.ColumnIndex].HeaderCell.SortGlyphDirection = strSortOrder;
}
【问题讨论】:
标签: c# winforms linq datagridview