基本上我有一个datagridview,我希望在第一列中插入图像,在其余列中插入文本。请注意,datagridview绑定到我插入行的源。
在图像要求之前我曾经只是将行添加为字符串数组,如下所示:
string[] row = **value**;
myDataTable.Rows.Add(row);
哪一切都运作良好。但是现在我不知道如何添加图像(我已经在数据表中添加了一个图像列)。显然,我无法在字符串数组中插入位图图像。 我也不能插入图像和字符串数组,如下所示:
myDataTable.Rows.Add(image, textArray);
因为它会导致在第二列中插入整个数组,而不会在每列中插入特定项目。
我该怎么做?
答案 0 :(得分:2)
You can pass an array of objects而不是字符串数组:
object[] row = new object[] { image, "string 1", "string 2" };
myDataTable.Rows.Add(row);
答案 1 :(得分:0)
我们可以将任何类型的数据绑定到DataGridViewImageColumn。我们只需要处理CellFormatting事件就可以将数据转换为图像。例如,我们将一些图像路径绑定到列,我们可以按照下面的代码显示图像:
private void dataGridView1_CellFormatting(object sender,DataGridViewCellFormattingEventArgs e)
{
if (this.dataGridView1.Columns[e.ColumnIndex] is DataGridViewImageColumn)
{
string imagePath = (e.Value ?? "").ToString().Trim();
if (imagePath != "")
e.Value = Image.FromFile(imagePath);
}
}