【发布时间】:2012-04-10 09:35:46
【问题描述】:
我有 DataGridView,我使用 DataTables 设置了 datagridview 的 DataSource。
DataTable dt = new DataTable();
dt.Columns.Add("Image",typeof(Bitmap));
dt.Columns.Add("Col2", typeof(string));
dt.Columns.Add("Col3", typeof(string));
dt.Columns.Add("Col4", typeof(string));
dt.Columns.Add("Col5", typeof(string));
int currentrow = 0;
foreach (Dev d in Devs)
{
dt.Rows.Add(dt.NewRow());
Bitmap bmp = Test(d);
dt.Rows[currentrow][0] = bmp;
dt.Rows[currentrow][1] = d .ID;
dt.Rows[currentrow][2] = d .Name;
dt.Rows[currentrow][3] = d .Country;
dt.Rows[currentrow][4] = d .State;
currentrow++;
}
datagridview.DataSource = dt;
当我的列类型为字符串时,此代码排序,但我也想根据图像进行排序。我想单击图像列,它应该根据图像进行排序。只有三种类型的图像,所以我希望相同的图像应该放在一起以便于显示。 我搜索但找不到任何解决方案。 有什么可以引导我走向正确的方向吗?
当我尝试这样的事情时出错
datagridview.Sort(dgvFusePTW.Columns[0], ListSortDirection.Ascending);
错误:数据绑定的 DataGridView 控件只能在数据绑定的列上排序。
更新: 我又增加了一栏。它是隐藏的,当使用单击图像列(第一个)时,它会触发 ColumnHeaderMouseClick 事件。在此处添加逻辑以对隐藏列进行排序。 这只是解决我点击的问题。
谢谢你,
L.E.
【问题讨论】:
标签: c# sorting datagridview