绑定DataSet到DataGridView.DataSource很好。通过这个
DataSet ds = new DataSet();
ds.ReadXml(xmlFilePath);
dataGrid.DataSource = ds;
dataGrid.DataMember = "Teacher";XML
<Teachers>
<Teacher>
<FullName>AAAAAA</FullName>
<Gender>Male</Gender>
.
.
.
. More than 15 Columns
.
<Photo> --- Base64 string--- </Photo>
</Teacher>
<Teacher>
.
.
.
</Teacher>
</Teachers>但是如何将元素的Base64字符串转换为DataGridView中的图像列。Photo列显示为原样。(BASE64字符串)。
--稍后-
我试过这个。
private void dg_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (dg.Columns[e.ColumnIndex].Name == "Photo" && !dg.Rows[e.RowIndex].IsNewRow)
{
if (!string.IsNullOrEmpty(e.Value + ""))
{
e.Value = Base64ToImage(e.Value + "");
}
}
}但是输出是这样的..。

发布于 2014-05-29 21:41:05
您需要将datagrids的autogeneratecolumns属性设置为false。然后,在Datagrid的Columns属性中,在设计视图中自己生成列。确保将包含图像的列设置为DataGridViewImageColumn。
在设计视图中创建列时,不要忘记在列上设置DataPropertyName。这将使DataGridView能够知道它应该从数据源加载什么。
这应该是可行的,结合你已经做的上面的事情。
有关更多信息,请查看此链接how to bind datatable to datagridview in c sharp。
https://stackoverflow.com/questions/20824006
复制相似问题