0

私は本のxmlを持っています。この xml に新しい本が追加されると、番号が付けられます。本ごとに番号が異なります。ユーザーは、リストボックスで本をクリックして本を選択できます。次に、ユーザーはボタンをクリックして、選択した本の情報を変更できます。新しいフォームが表示されますが、どのブックを変更する必要があるかについての情報を渡すことができません。(この情報が番号になります。)

private int GetNumber()
{

    foreach (var book in xmlofbooks.Descendants("Book"))
    {
        if (book.Attribute("Number")==listbox1.SelectedItem
    }


    return ;
}
4

3 に答える 3

2

単純な Book クラスを作成し、XML を逆シリアル化List<Book>し、ListBox. DisplayMember次に、タイトル (または表示したいもの) とValueMember番号を設定できます。で番号を取得し、MyListBox.SelectedValueそれを必要とするものに渡すことができます。次のようにデータソースを設定します。MyListBox.DataSource = MyListOfBooks;

その情報を XML に直接バインドできるかもしれませんが、その方法がわかりません。

于 2012-11-09T08:25:49.357 に答える
1

この特定の種類の XML データの操作については、XML シリアライゼーション/デシリアライゼーションを学ぶことができます。これにより、XML データを IEnumerable クラス オブジェクトに逆シリアル化できます。

XML をこの状態にすると、それをフォーム コントロールのデータソースとして使用すると、管理が非常に簡単になります。

ここに例があります:-

http://www.developerfusion.com/code/2517/serialize-and-deserialize-objects-to-an-xml-file/

お役に立てれば。

于 2012-11-09T09:07:35.483 に答える
0

属性の値と項目の内容を比較してみてください:

if (book.Attribute("Number").Value.Equals(listbox1.SelectedItem.Content))
{
    // ...
}
于 2012-11-09T08:01:12.480 に答える