将linq的结果绑定到xml查询到同一个gridview [英] Binding results of an linq to xml query to the same gridview

查看:265
本文介绍了将linq的结果绑定到xml查询到同一个gridview的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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;

        }


推荐答案

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

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;

这篇关于将linq的结果绑定到xml查询到同一个gridview的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆