列表框中的C#XML。如何选择哪个项目?

时间:2012-11-09 07:55:47

标签: c# xml winforms listbox

我有一本xml的书。当新书添加到此xml时,它们会得到一个数字。每本书都有不同的编号。用户可以通过在列表框上单击来选择书籍。然后,用户可以单击按钮来更改所选书籍的信息。一个新表格显示,但我无法传递哪些书必须更改的信息。 (此信息将是数字。)

private int GetNumber()
{

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


    return ;
}

3 个答案:

答案 0 :(得分:2)

为什么不创建一个简单的Book类,将XML反序列化为List<Book>并将其绑定到ListBox。然后,您可以将DisplayMember设置为标题(或任何您想要显示的内容),将ValueMember设置为数字。您可以使用MyListBox.SelectedValue检索号码并将其传递给任何需要的号码。像这样设置数据源:MyListBox.DataSource = MyListOfBooks;

您可以直接将该信息绑定到XML,但我不知道如何。

答案 1 :(得分:1)

对于使用XML数据的这种特定类型的工作,您可以学习XML序列化/反序列化。这将允许您将XML数据反序列化为IEnumerable类对象。

在此状态下使用XML后,将其用作表单控件的数据源变得更容易管理。

以下是一个例子: -

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

希望这有帮助。

答案 2 :(得分:0)

尝试将属性值与项目内容进行比较:

if (book.Attribute("Number").Value.Equals(listbox1.SelectedItem.Content))
{
    // ...
}