簡體   English   中英

列表框中的C#XML。 如何獲得選擇的項目?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM