0

スキャン デバイス用の C# アプリケーションを開発していて、問題が発生しました。アプリケーションが実行されるたびにサーバーから取得するxmlファイルから構成設定を取得します。ただし、構成が間違っていると、サーバーの 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 は Name | Name で構成されます。値のペアと、サンプルの 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 に答える