【问题标题】:Binding an XElement to BindingSource c#将 XElement 绑定到 BindingSource c#
【发布时间】:2012-06-24 18:20:38
【问题描述】:

我正在阅读一些 xml,我想知道是否可以将 XElement 绑定到绑定源 并将绑定源绑定到 datagriview winforms。

我尝试了各种方法,但都没有成功。

此 Xelement 中的每个元素都必须在 datagridview 中创建一个数据行

有什么 sn-ps 或建议吗?

谢谢

编辑

我正在尝试构建一个数据表以绑定到 datagridView 尝试如下

class Program
{
    static void Main()
    {
        //at runtime could be any object
        const string testXElement = @"<MyObject xmlns=""http://www.test.com/"">
          <code>Test</code>
          <Date>2012-06-24T00:00:00+01:00</Date>
          <Name>John</Name>
        </MyObject>";
        XElement element = XElement.Parse(testXElement);
        var dgv=new DataGridView();

        //Build dataTable from it or 
        var dt=new DataTable();
        XNamespace ns = "http://www.test.com/";
        foreach (var x in element.Descendants(ns + "MyObject").Elements())
        {
            var dc = new DataColumn {ColumnName = x.Name.ToString()};
            var row = dt.NewRow();
            //row[dc] = );
        }
        dgv.DataSource = dt;
    }
}

【问题讨论】:

  • 这会有帮助吗?更新了答案。每个元素在 gridview 中创建一行。

标签: winforms datagridview linq-to-xml bindingsource


【解决方案1】:
//at runtime could be any object
            const string testXElement = @"<MyObject xmlns=""http://www.test.com/"">
                                            <code>Test</code>
                                            <Date>2012-06-24T00:00:00+01:00</Date>
                                            <Name>John</Name>
                                         </MyObject>";
            XElement element = XElement.Parse(testXElement); 


            var temp = from obj in element.Elements() 
                       select new
                       {
                           Name = obj.Name.LocalName,
                           Value = obj.Value
                       };

            dataGridView1.DataSource = temp.ToList();

【讨论】:

  • 嗨,谢谢你的回复。我唯一的麻烦是我只知道运行时的对象。我打算转换一个 xelement 并将它循环到一个数据表并绑定数据表。似乎不能能够循环通过 xelement EG test.com"> Test 2012-06-24T00:00:00+01:00John
  • 如果你是directly 得到XElement,那么你可以使用xElement.Elements(&lt;&lt;your namespace&gt;&gt; + "MyObject") 之类的东西
  • 如果您可以发布代码,即您到目前为止所尝试的内容,那么我们可能会得出一些结论。
  • 更新了一个我似乎无法构建的代码示例。感谢您的帮助 Agarwal
猜你喜欢
  • 2016-10-07
  • 1970-01-01
  • 2019-12-17
  • 2017-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-03
  • 2019-03-27
相关资源
最近更新 更多