0
我有DataGridView,我通過使用DataTables設置datagridview的DataSource。c#窗體窗體DataTable與圖像列排序
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.
它僅基於圖像。不是圖像的類型。所以只有一種圖像。 .ICO。更新的問題。 – 2012-03-26 21:05:33
我試過你的解決方案,但它顯示一個錯誤,如「System.ArgumentException:至少有一個對象必須實現IComparable。」 – 2012-03-26 22:35:26
@ L.E,我更新了答案,現在應該可以工作。 – code4life 2012-03-28 14:37:11