Как вывести элементы из Listbox

236
18 апреля 2022, 13:40

Имеется ComboBox, из которого пользователь выбирает строки, которые после этого отображаются на ListBox. Хочу эти выбранные элементы вывести через запятую.

Такой вариант:

string.Join(", ", listBox1.SelectedItems)

выдаёт System.Windows.Forms.ListBox+SelectedObjectCollection.
Пытаюсь обратиться к конкретному объекту ListBox по индексу:

listBox1.Items[1].ToString()

получаю простанство имен.имякласса, вместо значения, которое хранится по индексу 1.
Что не так?

Answer 1
  1. Нужно переопределить ToString() в вашем классе, который вы используете для заполнения Items, иначе по дефолту он выводит наименование типа.

  2. Теперь можно джойнить строку как из SelectedItems, так и из Items, НО обязтаельно через Cast к нужному типу(таковы особенности этой коллекции)

    public class MainForm
    {
         public MainForm()
         {
             listBox1.Items.Add(new DataItem
                 {
                     Name = "Петя"
                 });
             listBox1.Items.Add(new DataItem
                 {
                     Name = "Вася"
                 });
             var str = string.Join(",", listBox1.Items.Cast<DataItem>());
         }
     }
     class DataItem
     {
         public string Name { get; set; }
         public override string ToString()
         {
             return Name;
         }
     }
    
READ ALSO
Mysql + C# перенос информации

Mysql + C# перенос информации

Как из MySql phpmyadmin извлечь информацию из таблицы и перенести в Label?

133
Как убирать символы в тексте?

Как убирать символы в тексте?

Кароче, у меня есть панель с паролем и я хочу в случае чего убирать вбитые цифры, но не знаю как это реализовать, пробовал через Remove, не выходило

154
Ошибка CS0161 C#

Ошибка CS0161 C#

В коде возникает ошибка CS0161(не все пути кода возвращают значение)

152
Какие параметры необходимо поменять при инициализации окна WPF, чтобы canvas внутри элемента webrowser отрисовывался с некоторым шумом?

Какие параметры необходимо поменять при инициализации окна WPF, чтобы canvas внутри элемента webrowser отрисовывался с некоторым шумом?

пробовал добавлять blur в Effect - но это не влияет на значения канвасзначения канвас проверяю на https://browserleaks

128