2011-12-26 18 views
6

Tôi đang viết ứng dụng C# sử dụng biểu mẫu thắng. Tôi có một hộp danh sách. Tôi lấy dữ liệu của mình từ tệp xml, tên người dùng và id của họ. Tôi muốn tên được hiển thị trong hộp danh sách và khi tôi chọn một trong số chúng, tôi muốn lấy id của anh/cô ấy bằng thuộc tính selectedValue. Tuy nhiên tôi không thể làm điều này. Tôi đã thử keyValuePair hiển thị "[tên người dùng, id]" trong hộp danh sách không tốt (xem mã bên dưới). Làm thế nào tôi có thể mô phỏng html chọn trong C# trong ngắn hạn? Tôi muốn tên được hiển thị trong hộp danh sách nhưng muốn lấy id trong phần phụ trợ. Cảm ơn ...Không thể thực hiện khóa-giá trị trong hộp danh sách trong C#

LB_UserList.Items.Add(new KeyValuePair<string, string>(full_name, node["user_id"].InnerText)); 
+0

thể trùng lặp của [Làm thế nào để tôi nhận được vào listbox mục "chìa khóa" trong ứng dụng C# winforms?] (http://stackoverflow.co m/câu hỏi/507354/how-do-i-get-at-the-listbox-items-key-in-c-sharp-winforms-app) – Moshtaf

Trả lời

14

sử dụng C# dictionary cho điều này,

Dictionary<string, string> list = new Dictionary<string, string>(); 
list.Add("item 1", "Item 1"); 
list.Add("item 2", "Item 2"); 
list.Add("item 3", "Item 3"); 
list.Add("item 4", "Item 4"); 

dropdown.DataSource = list; 
dropdown.DataTextField = "Value"; 
dropdown.DataValueField = "Key"; 
dropdown.DataBind(); 

EDIT:

listBox.DataSource = new BindingSource(list, null); 
listBox.DisplayMember = "Value"; 
listBox.ValueMember = "Key"; 
+0

DataTextField, DataValueField và DataBind bị thiếu trong ListBox trong C#. Đối với DataSource, tôi nhận được lỗi này: "DataBinding phức tạp chấp nhận như một nguồn dữ liệu hoặc là một IList hoặc một IListSource." Tuy nhiên, cảm ơn bạn đã trả lời nhanh :) – Mehmed

+1

xem câu trả lời được cập nhật –

+0

Mã cập nhật hoạt động tốt. Cảm ơn! – vkapadia

Các vấn đề liên quan