[英]C# XML in listbox. How to get which item is selected?
我有一個xml的書。 將新書添加到此xml后,它們會得到一個數字。 每本書都有不同的編號。 用戶可以通過在列表框上單擊來選擇一本書。 然后,用戶可以單擊按鈕來更改所選書的信息。 將顯示一個新表格,但我無法傳遞必須更改哪本書的信息。 (此信息將是數字。)
private int GetNumber()
{
foreach (var book in xmlofbooks.Descendants("Book"))
{
if (book.Attribute("Number")==listbox1.SelectedItem
}
return ;
}
為什么不創建一個簡單的Book類,將XML反序列化為List<Book>
並將其綁定到ListBox
。 然后,您可以將DisplayMember
設置為Title(或想要顯示的任何內容),將ValueMember
設置為Number。 您可以使用MyListBox.SelectedValue
檢索該數字並將其傳遞給任何需要的數字。 這樣設置數據源: MyListBox.DataSource = MyListOfBooks;
您也許可以將這些信息直接綁定到XML,但是我不知道如何。
對於使用XML數據的這種特殊類型,您可以學習XML序列化/反序列化。 這將允許您將XML數據反序列化為IEnumerable類對象。
一旦使XML處於此狀態,然后將其用作表單控件的數據源就變得更容易管理。
這是一個例子:
http://www.developerfusion.com/code/2517/serialize-and-deserialize-objects-to-an-xml-file/
希望這可以幫助。
嘗試將屬性值與項目內容進行比較:
if (book.Attribute("Number").Value.Equals(listbox1.SelectedItem.Content))
{
// ...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.