c# - 如何从 C# 中的 ListView 写入 XML 文件

标签 c# xml listview file-io linq-to-xml

我有一个类似ListView 的控件

alt text

我需要将此 ListView 中的数据存储到 Xml 文件中。

所以xml文件会是这样的

<root>
 <Child Name ="A1" val1="1" val2="0"/>
 <Child Name ="A2" val1="1" val2="2"/>
 <Child Name ="A3" val1="1" val2="3"/>
 <Child Name ="A4" val1="1" val2="4"/>
 <Child Name ="A5" val1="1" val2="5"/>
 <Child Name ="A6" val1="6" val2="0"/>
 <Child Name ="A7" val1="7" val2="0"/>
</root>

如果数据存储在一些 ListDictionary 中,那么我知道使用 XML to LINQ 来做到这一点

但是我如何从 ListView 执行此操作

XDocument XD=new XDocument(new XElement("root",........// what i have to do here.......

请帮我做这个...

提前致谢

最佳答案

您可以查询 ListView 子项及其列标题:

XDocument document = new XDocument(new XElement("root",
    from item in yourListView.Items.Cast<ListViewItem>()
    select new XElement("Child",
        item.SubItems.Cast<ListViewSubItem>()
            .Select((subitem, i) => new XAttribute(
                i == 0 ? "Name" : yourListView.Columns[i].Text.ToLower(),
                subItem.Text)))));

编辑:因为 ListViewItemCollection 都不是也不ListViewSubItemCollection支持开箱即用的查询运算符,我们需要调用 Cast<T>() 能够使用它们。

关于c# - 如何从 C# 中的 ListView 写入 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4067027/

相关文章:

java - Dom 设置元素错误

javascript - 如何在android中单击时将选定的行图标替换为列表项上的另一个图标

android - DrawerLayout 内部 fragment 提供 Measure.EXACTLY 错误

c# - 为具有多个顶点的网格创建单个 MeshCollider

java - IzPack 安装程序,找不到元素“安装”的声明

xml - XSLT 以不同的 xml 读取顺序应用模板

java - 如何使用 ContextMenu 删除 Sqlite 中的行?

c# - 无法通过 IE 访问 WCF 自托管服务

c# - 未找到配置文件

c# - 在 Visual Studio 中获取零引用代码列表