Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从Xml到DataGridViewColumn作为图像列的Base64字符串_C#_Xml_Datagridview - Fatal编程技术网

C# 从Xml到DataGridViewColumn作为图像列的Base64字符串

C# 从Xml到DataGridViewColumn作为图像列的Base64字符串,c#,xml,datagridview,C#,Xml,Datagridview,将DataSet绑定到DataGridView.DataSource工作正常。由此 DataSet ds = new DataSet(); ds.ReadXml(xmlFilePath); dataGrid.DataSource = ds; dataGrid.DataMember = "Teacher"; XML 但是输出是这样的 您需要将datagrids的autogeneratecolumns属性设置为false。然后在Datagrid的Columns属性中,在design视图中自己生成

将DataSet绑定到DataGridView.DataSource工作正常。由此

DataSet ds = new DataSet();
ds.ReadXml(xmlFilePath);

dataGrid.DataSource = ds;
dataGrid.DataMember = "Teacher";
XML

但是输出是这样的


您需要将datagrids的autogeneratecolumns属性设置为false。然后在Datagrid的Columns属性中,在design视图中自己生成列。确保将保存图像的列设置为DataGridViewImageColumn

在设计视图中创建列时,不要忘记设置列的DataPropertyName。这将允许DataGridView知道应该从数据源加载什么

这应该是可行的,与你在上面已经做过的工作相结合

查看此链接了解更多信息

<Teachers>
<Teacher>
    <FullName>AAAAAA</FullName>
    <Gender>Male</Gender>
    .
    .
    .
    . More than 15 Columns
    .
    <Photo> --- Base64 string--- </Photo>
</Teacher>
<Teacher>
.
.
.
</Teacher>
</Teachers>
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 + "");
        }
    }
}