DataGridViewがあり、DataTablesを使用してDataGridViewのDataSourceを設定しました。c#windowフォームDataTable with Image列並べ替え
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;
このコードでは、列の文字列型を並べ替えることはできますが、画像に基づいて並べ替えることもできます。私は画像の列をクリックしたいと画像に基づいてソートする必要があります。 3種類の画像しかないので、簡単に表示できるように同じ画像をまとめておきます。 私が検索したところ、まだ解決策が見つかりませんでした。 私は正しい方向に導くことができるものは何ですか?私はこの
datagridview.Sort(dgvFusePTW.Columns[0], ListSortDirection.Ascending);
エラーのような何かをしようとしました
ガットのエラー:データバインドDataGridViewコントロールは、データのみバインド列でソートすることができます。
更新: もう1列追加しました。それは隠されて、イメージの列(1番目)をクリックすると、ColumnHeaderMouseClickイベントが発生します。ロジックを追加して隠れた列を並べ替えました。 誰かが私をクリックしただけで回避できます。
画像のみに基づいています。画像のタイプではありません。そのため、1つのタイプの画像しかありません。 .ICO。更新された質問。 –
私はあなたのソリューションを試しましたが、 "System.ArgumentException:少なくとも1つのオブジェクトがIComparableを実装する必要があります"のようなエラーが表示されます。 –
@ L.E、私は答えを更新しました、これは今すぐ動作するはずです。 – code4life