我正在使用列表框并向其添加对象。
该对象包含2个变量,比如用户名和用户ID。
如何在列表中添加对象 listbox.Items.add(对象); 并显示该对象的用户名?
日Thnx!
答案 0 :(得分:31)
您可以使用DisplayMember和ValueMember属性显示对象的UserName
属性,并使用其UserId
属性作为列表项值:
class YourItem
{
public string UserName { get; set; }
public string UserId { get; set; }
}
yourListBox.DisplayMember = "UserName";
yourListBox.ValueMember = "UserId";
yourListBox.Items.Add(new YourItem {
UserName = "FooName",
UserId = "FooId"
});
答案 1 :(得分:11)
您可以使用listBox的DisplayMember属性。
listbox.DisplayMember = "username";
还有一个等效属性来定义实际值,您可以使用它来检索用户ID。例如,如果您定义列表如下:
listbox.DisplayMember = "username";
listbox.ValueMember = "userid";
var item1 = new MyType { username = "user1", userid = "id1" }; // Create an item for the list
listbox.Items.Add(item1); // Add the item
listbox.SelectedIndex = 0; // Selects the first item
然后您可以通过3种不同的方式(项目,值或文本)引用列表中的对象,如下所示:
MyObject newItem = (MyObject) listbox.SelectedItem; // Gets the selected MyType
// OR
string username = listbox.Text; // Gets the selected user name using the DisplayMember property of the listbox
// OR
string userid = listbox.SelectedValue; // Gets the selected user's userid using the ValueMember property of the listbox
您还可以使用相同的3种不同方式设置所选项目:
listbox.SelectedItem = item1;
// OR
listbox.Text = item1.username;
// OR
listbox.SelectedValue = item1.userid;
答案 2 :(得分:1)
设置DataTextField
和DataValueField
ListBox a = new ListBox();
a.DataTextField = "username";
a.DataValueField = "userid";
要使用.Add
方法添加,您可以使用:
a.Items.Add(new ListItem() { Value = User.ID, Text = User.Name });
答案 3 :(得分:0)
您可以覆盖" ToString"方法
class User
{
public string username { set; get; }
public string userid { set; get; }
public override string ToString()
{
return username;
}
}