Подтвердить что ты не робот

С# добавить объект в список и показать строку объекта в нем

Im, используя список и добавляя к нему объекты.

объект содержит 2 переменные, позволяет указать имя пользователя и идентификатор пользователя.

как добавить объекты в список, например listbox.Items.add(объект); и показать имя пользователя этого объекта?

Thnx!

4b9b3361

Ответ 1

Вы можете использовать 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"
});

Ответ 2

Вы можете использовать свойство DisplayMember вашего listBox.

listbox.DisplayMember = "username";

Существует также эквивалентное свойство для определения фактического значения, которое вы можете использовать для извлечения идентификатора пользователя. Например, если вы определяете свой список следующим образом:

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

Затем вы можете ссылаться на объекты в списке тремя разными способами (item, value или text) следующим образом:

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 userid using the ValueMember property of the listbox

Вы также можете выбрать один и тот же 3 разных способа:

listbox.SelectedItem = item1;
// OR
listbox.Text = item1.username;
// OR
listbox.SelectedValue = item1.userid;

Ответ 3

Вы можете переопределить метод ToString.

class User
{
    public string username { set; get; }
    public string userid { set; get; }

    public override string ToString()
    {
        return username;
    }
}

Ответ 4

Установите DataTextField и DataValueField

ListBox a = new ListBox();
a.DataTextField = "username";
a.DataValueField = "userid";

Чтобы добавить метод .Add, вы можете использовать:

a.Items.Add(new ListItem() { Value = User.ID, Text = User.Name });