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

发布于 2024-12-04 12:22:12 字数 1812 浏览 0 评论 0原文

如何将 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;

        }

How can I bind the results of my linq to xml query parser to the same gridview. I'm only able to see the last one for the 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;

        }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

荭秂 2024-12-11 12:22:12

您每次都替换数据源。如果您只想连接三个查询的结果,您可以使用:

var source = new BindingSource { DataSouce = query1.Concat(query2)
                                                   .Concat(query3) };
dataGridView1.DataSource = source;

You're replacing the datasource each time. If you just want to concatenate the results of the three queries, you could use:

var source = new BindingSource { DataSouce = query1.Concat(query2)
                                                   .Concat(query3) };
dataGridView1.DataSource = source;
南巷近海 2024-12-11 12:22:12

试试这个:

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;

        }

我不编译它,它是一个快速草图

try this one:

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;

        }

I don't compile it, it is a fast sketch

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文