我如何从XML填充WPF数据网格,我只知道它将包含一系列元素但不包含名称或属性?
当我获取数据时,它呈XmlNodes数组的形状。这有用吗?
我尝试过各种各样的组合,包括XmlDataProvider等。
有什么想法吗?
答案 0 :(得分:0)
这就是诀窍:
var sb = new StringBuilder("<root>");
foreach (var node in xmlNodes)
{
sb.AppendLine(node.OuterXml);
}
sb.AppendLine("</root>");
var ds = new DataSet();
ds.ReadXml(new StringReader(sb.ToString()));
return ds.Tables[0];
有点难看,我知道如果你有一个更优雅的解决方案,请告诉我。
答案 1 :(得分:0)
最简单的方法是从DataSet
构造xml
并绑定绑定数据集。
<DataGrid Name="dataGrid1" ItemsSource="{Binding}" AutoGenerateColumns="true"/>
C#
string myXMLfile = @"C:\myfile.xml";
DataSet ds = new DataSet();
// Create new FileStream with which to read the schema.
System.IO.FileStream fsReadXml = new System.IO.FileStream
(myXMLfile, System.IO.FileMode.Open);
try
{
ds.ReadXml(fsReadXml);
dataGrid1.DataSource = ds.Table[0].DefaultView;
// or dataGrid1.DataSource = ds;
}
finally
{
fsReadXml.Close();
}