【发布时间】:2020-01-08 16:07:50
【问题描述】:
我正在尝试将 Datagrid 中的数据发送到 XML 文件中,但出现以下错误:
- datagrid 在第一个 for 语句中不包含“HeaderText”的定义
- datagrid 在 foreach 中不包含“行”的定义 声明
- datagrid 不包含第二个单元格的定义 声明
这是我的代码:
private void sendgrid(object sender, RoutedEventArgs e)
{
DataTable dt = new DataTable();
for (int i = 1; i < realdatagrid.Columns.Count + 1; i++)
{
DataColumn column = new DataColumn(realdatagrid.Columns[i - 1].HeaderText);
dt.Columns.Add(column);
}
int ColumnCount = realdatagrid.Columns.Count;
foreach (DataGridRow dr in realdatagrid.Rows)
{
DataRow dataRow = dt.NewRow();
for (int i = 0; i < ColumnCount; i++)
{
dataRow[i] = dr.Cells[i].Text;
}
}
DataSet ds = new DataSet();
ds.Tables.Add(dt);
XmlTextWriter newXml = new XmlTextWriter("C:/newXML.xml", Encoding.UTF8);
ds.WriteXml(newXml);
}
【问题讨论】:
-
为什么需要,实际过程是什么?
-
这能回答你的问题吗? Convert DataTable to XML file and viceversa
-
您使用的是
DataGrid还是DataGridView,这也不适用于WPF。你需要寻找Header...你把两者搞混了吗? -
我正在使用 DataGridVeiw
-
你做错了。整个 WPF 体系结构是围绕数据绑定构建的,您应该将 DataGrid 绑定到视图模型中的数据,从而在模型层中公开数据。您的模型层是您序列化到 XML 中的内容,而不是 DataGrid 本身。