我有一本xml的书。当新书添加到此xml时,它们会得到一个数字。每本书都有不同的编号。用户可以通过在列表框上单击来选择书籍。然后,用户可以单击按钮来更改所选书籍的信息。一个新表格显示,但我无法传递哪些书必须更改的信息。 (此信息将是数字。)
private int GetNumber()
{
foreach (var book in xmlofbooks.Descendants("Book"))
{
if (book.Attribute("Number")==listbox1.SelectedItem
}
return ;
}
答案 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))
{
// ...
}