Имеется ComboBox
, из которого пользователь выбирает строки, которые после этого отображаются на ListBox
. Хочу эти выбранные элементы вывести через запятую.
Такой вариант:
string.Join(", ", listBox1.SelectedItems)
выдаёт System.Windows.Forms.ListBox+SelectedObjectCollection
.
Пытаюсь обратиться к конкретному объекту ListBox
по индексу:
listBox1.Items[1].ToString()
получаю простанство имен.имякласса
, вместо значения, которое хранится по индексу 1.
Что не так?
Нужно переопределить ToString() в вашем классе, который вы используете для заполнения Items, иначе по дефолту он выводит наименование типа.
Теперь можно джойнить строку как из 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;
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Как из MySql phpmyadmin извлечь информацию из таблицы и перенести в Label?
Кароче, у меня есть панель с паролем и я хочу в случае чего убирать вбитые цифры, но не знаю как это реализовать, пробовал через Remove, не выходило
пробовал добавлять blur в Effect - но это не влияет на значения канвасзначения канвас проверяю на https://browserleaks