2015-12-28 3 views
0

У меня есть предварительно сконфигурированный ListView (с уже настроенными заголовками столбцов), что я хотел бы задать список объектов и написать как строки для этого списка атрибуты класса У меня есть список.Список преобразований <object> Элементы ListView (с subItems)

Я стараюсь следовать this existing question, хотя он отлично обрабатывает элемент только с одним столбцом, я не уверен, как применять несколько подпунктов.

У меня есть класс, который содержит List<Product>, который передается в UserControl, который берет этот список и добавляет каждый элемент продукта в ListView в элементе управления.

В то время как связанный Q & A обрабатывает это, он не является полным, и я не знаю, как получить другие атрибуты в ListView в качестве SubItems.

Мой фрагмент: Products.Items.AddRange(basket.ProductList.Select(p => new ListViewItem(p.Description)).ToArray()); где p является List<Product>

Я хотел бы также иметь количество товара, цена за единицу и линии общей (который работал в классе уже есть) в ListView, но я m не уверен, с чего начать.

+0

Это WPF или формы? – Aybe

+0

Извините, я должен был указать - это WinForms –

+0

Кроме того, вы должны уточнить, что конкретно представляет собой проблема? создание новых столбцов для представления? найти продукт из списка? и т. д., или вы ожидаете вид мастера-детали? – Aybe

ответ

0

ListViewItem класс имеет много конструкторов. Наиболее подходящий для Вашего случая является ListViewItem Constructor (String[])

общественного ListViewItem (строка [] элементы)

Инициализирует новый экземпляр класса ListViewItem с массивом строк, представляющих подэлементы.

С вашего сниппета, что-то вроде этого

Products.Items.AddRange(basket.ProductList.Select(p => new ListViewItem(new string[] 
{ 
    p.Description, 
    p.Quantity.ToString(...), 
    p.UnitPrice.ToString(...), 
    ... 
})).ToArray()); 

Обратите внимание, что ListViewItem.Text фактически ListView.SubItems[0].Text.

+0

Это замечательно, спасибо! –