C# 将linq到xml查询的结果绑定到同一个gridview
如何将linq to xml查询解析器的结果绑定到同一个gridview。我只能看到ZAxisCalib/query3的最后一个C# 将linq到xml查询的结果绑定到同一个gridview,c#,datagridview,linq-to-xml,C#,Datagridview,Linq To Xml,如何将linq to xml查询解析器的结果绑定到同一个gridview。我只能看到ZAxisCalib/query3的最后一个 string[] fileEntries = Directory.GetFiles(@"c:\Sciclone UAC", "*.cfg*"); foreach (string fileName in fileEntries) { XDocument doc = XDocument.Load(fileName)
string[] fileEntries = Directory.GetFiles(@"c:\Sciclone UAC", "*.cfg*");
foreach (string fileName in fileEntries)
{
XDocument doc = XDocument.Load(fileName);
var query = from x in doc.Descendants("XAxisCalib")
select new
{
MaxChild = x.Descendants("Max"),
MinChild = x.Descendants("Min")
};
{
var bs1 = new BindingSource { DataSource = query };
dataGridView1.AutoGenerateColumns = true;
dataGridView1.AutoSize = true;
dataGridView1.DataSource = bs1;
}
var query2 = from y in doc.Descendants("YAxisCalib")
select new
{
MaxChild = y.Descendants("Max"),
MinChild = y.Descendants("Min")
};
var bs2 = new BindingSource { DataSource = query2 };
dataGridView1.AutoGenerateColumns = true;
dataGridView1.AutoSize = true;
dataGridView1.DataSource = bs2;
var query3 = from z in doc.Descendants("ZAxisCalib")
select new
{
MaxChild = z.Descendants("Max"),
MinChild = z.Descendants("Min")
};
var bs3 = new BindingSource { DataSource = query3 };
dataGridView1.AutoGenerateColumns = true;
dataGridView1.AutoSize = true;
dataGridView1.DataSource = bs3;
}
试试这个:
string[] fileEntries = Directory.GetFiles(@"c:\Sciclone UAC", "*.cfg*");
foreach (string fileName in fileEntries)
{
XDocument doc = XDocument.Load(fileName);
var query = from x in doc.Descendants("XAxisCalib")
select new
{
MaxChild = x.Descendants("Max"),
MinChild = x.Descendants("Min")
};
/* {
var bs1 = new BindingSource { DataSource = query };
dataGridView1.AutoGenerateColumns = true;
dataGridView1.AutoSize = true;
dataGridView1.DataSource = bs1;
}*/
var query2 = from y in doc.Descendants("YAxisCalib")
select new
{
MaxChild = y.Descendants("Max"),
MinChild = y.Descendants("Min")
};
/* var bs2 = new BindingSource { DataSource = query2 };
dataGridView1.AutoGenerateColumns = true;
dataGridView1.AutoSize = true;
dataGridView1.DataSource = bs2;*/
var query3 = from z in doc.Descendants("ZAxisCalib")
select new
{
MaxChild = z.Descendants("Max"),
MinChild = z.Descendants("Min")
};
var bs3 = new BindingSource { DataSource = query.Union(query2.Union(query3)) };
dataGridView1.AutoGenerateColumns = true;
dataGridView1.AutoSize = true;
dataGridView1.DataSource =bs3;
}
我不编译它,它是一个快速的草图,您每次都要替换数据源。如果只想连接三个查询的结果,可以使用:
var source = new BindingSource { DataSouce = query1.Concat(query2)
.Concat(query3) };
dataGridView1.DataSource = source;
谢谢,是的,这很有效。但唯一的问题是,我的代码只对文件夹中的一个文件执行此操作。在打开包含要解析的文件的目录时,您是否看到我的代码有任何错误。谢谢。是的,这很有效。但唯一的问题是,我的代码只对文件夹中的一个文件执行此操作。在打开包含要解析的文件的目录时,您是否看到我的代码有任何错误。我需要它来解析文件夹中的所有文件,但只为一个文件进行解析。@Casey:不,它为所有文件进行解析-但替换每次迭代的结果。。。