Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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# 将linq到xml查询的结果绑定到同一个gridview_C#_Datagridview_Linq To Xml - Fatal编程技术网

C# 将linq到xml查询的结果绑定到同一个gridview

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)

如何将linq to xml查询解析器的结果绑定到同一个gridview。我只能看到ZAxisCalib/query3的最后一个

 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:不,它为所有文件进行解析-但替换每次迭代的结果。。。