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 回答