通过linq绑定到XML文件后无法编辑我的datagridview

时间:2015-11-11 10:42:27

标签: c# xml linq datagridview

链接到这里的两个类似的例子,我无法真正链接到我的确切情况。 Similalr example 1

Similar Example 2

以下是填充我的datagridview的代码......

XElement xdoc = XElement.Load(@"C:\xmltest\test.xml");

            var lines = from item in xdoc.Descendants("line")
                        let fields = item.Elements("field")
                        select new
                        {
                            Name = (string)fields
                                .FirstOrDefault(n => (string)n.Attribute("name") == "Name"),
                            Description = (string)fields
                                .FirstOrDefault(n => (string)n.Attribute("name") == "Description"),
                            ExtraDetails = (string)fields
                                .FirstOrDefault(n => (string)n.Attribute("name") == "ExtraDetails"),

                        };


            dataGridView1.DataSource = lines.ToArray();

这很好但我无法在'import'之后编辑datagridview。我已经设置了datagridview设置以允许编辑等。问题似乎与数据绑定有某种关系。

1 个答案:

答案 0 :(得分:1)

问题是您要将结果投影到anonymous type。文档链接中的第一行说明

  

匿名类型提供了一种将一组只读属性封装到单个对象中的便捷方法,而无需先显式定义类型。

希望您注意到只读字样。

如果您想获得可编辑的数据,请创建自己的具有读/写属性的类,并将查询结果投影到其中。