0

我正在为扫描设备开发 C# 应用程序,但遇到了一个问题。我从一个 xml 文件中获取我的配置设置,每次运行应用程序时我都从服务器获取该文件。但是,如果配置错误,我无法请求新的配置,因为 Server Url 在 xml 中。所以我决定我想要编辑功能。这是我显示配置的方式:

    private void list()
    {
        if (this.listViewConf.Items.Count != 0)
            this.listViewConf.Items.Clear();

        this.addItem("Operator", Data.cuser);
        this.addItem("Warehouse", Data.cware);
        this.addItem("Server URI", Config.uri(Config.socket));
        this.addItem("Timeout", Config.get(Config.socket, Config.atime));
        this.addItem("Config file", Config.path("config.xml"));
        this.addItem("Data backup", Config.path("data.xml"));

        this.listViewConf.Visible = true;
    }
    private void addItem(String name, String value) {
        ListViewItem item = new ListViewItem();
        item.Text = name;
        item.SubItems.Add(value);
        this.listViewConf.Items.Add(item);       
    }

其中 listViewConf 是一个 ListView。我的任务是 - 如何知道 ListView 的哪一行被选中(假设我有一个编辑按钮),更重要的是,如何编辑 xml 文件?ListView 由名称 | 值对,这是一个示例 config.xml:

    <?xml version="1.0" encoding="utf-8" ?>
<wms>
    <setup>
        <config path="/Flash File Store/WMS/" file="config.xml" />
        <socket path="http://ware.aip/interface/ck/" file="socket.php" timeout="10000" />
    </setup>
    <users>
        <user id="1" code="01" name="User" ware="1" />
    </users>
    <warehouses>
        <ware id="1" code="T" name="Test" />
    </warehouses>
    <tasktypes>
        <type id="1" code="T" name="Test" />   
    </tasktypes>
</wms>

而且 - 我知道创建可编辑的 ListView 是可能的,但如果有更简单的解决方案(比如使用编辑按钮),我很乐意使用它。预先感谢。

4

1 回答 1

0

使用 . 从 XML 创建一个可序列化的类xsd.exe。使用此类将 XMl 中的数据反序列化为POCO对象图,然后您可以将其绑定到ListView. 您现在可以直接编辑对象,而不是试图估计您应该在 XML 节点中的哪个位置进行编辑。

完成所有编辑后,将对象序列化回 XML。

于 2012-08-02T14:19:05.577 回答