2010-08-17 3 views

ответ

0

Извините, но это невозможно (легко).

ListView имеет список ListViewItem с, где каждый из них имеет список ListViewSubItem с (и сделать его немного более сложным на первом месте, первый ListViewSubItem такая же, как и сам ListViewItem).

Так что, если вы хотите, чтобы заполнить ListView по столбцам сначала нужно добавить ListViewItem S к ListView для всех значений, которые в первом столбце.

После этого вы перебираете по номеру ListView.Items и звоните на каждый ListViewItem.Subitems.Add, чтобы заполнить следующий столбец. Это необходимо сделать для каждого столбца, который вы хотите заполнить.

Если вы хотите, чтобы заполнить значения столбцов в другом порядке, а затем слева направо, вы должны смотреть в DisplayIndex в ColumnHeader внутри ListView.Columns.

Некоторые примеры кода:

// Some values 
var someValues = Enumerable.Range(1, 10); 

// Fill up the first column 
foreach (var item in someValues) 
{ 
    listView.Items.Add("0." + item); 
} 

// Run for each column in the listView (the first is already filled up) 
foreach (ColumnHeader column in listView.Columns.Cast<ColumnHeader>().Skip(1)) 
{ 
    // Get the value and the index for which row the value should be 
    foreach (var item in someValues.Select((Value, Index) => new { Value, Index })) 
    { 
     // Add the value to the given row, thous leading to be added as new column 
     listView.Items[item.Index].SubItems.Add(column.Index + "." + item.Value); 
    } 
} 
+0

спасибо за ваш ответ merc – mosa

Смежные вопросы