2013-11-25 3 views
2

В настоящее время я просто использую listviewitem.SubItems.Add() для добавления элементов в свой список.Как добавить к определенному столбцу listview

Проблема в том, что она добавляет только к первым двум столбцам (идет по столбцам по столбцам).

Я хочу, чтобы иметь возможность добавить к любой столбец, например: пропустите столбцы yymm, total trans и yyww и добавьте количество в столбце doc.

enter image description here

Это, как я в настоящее время добавить к ListView:

int totItems = Seq3.Count - 1; 

if (PercentPopTolerance1.Count - 1 > totItems) 
    totItems = PercentPopTolerance1.Count - 1; 

for (int i = 0; i <= totItems; i++) 
{ 
    ListViewItem lvi = new ListViewItem(); 
    string item1 = ""; 
    string item2 = ""; 

    if (Seq3.Count - 1 >= i) 
     item1 = Seq3[i].ToString(); 

    if (PercentPopTolerance1.Count - 1 >= i) 
     item2 = PercentPopTolerance1[i].ToString(); 

    lvi.SubItems.Add(item1); 
    lvi.SubItems.Add(item2); 

    listView2.Items.Add(lvi); 
} 
+1

Вы используете WPF? Что-то другое? –

ответ

3

Просто добавьте пустую строку, чтобы обойти ненужные столбцы:

lvi.SubItems.Add(item1); 

lvi.SubItems.Add(string.Empty); // skip Percent column 

lvi.SubItems.Add(item2); 
2

Я бы создать класс для представляют строку в сетке:

public class MyClass 
{ 
    string SeqNum { get; set; } 
    string Percent { get; set; } 
    string YYMM { get; set; } 
    string TotalTrans { get; set; } 
    string YYWW { get; set; } 
    string AmountInDoc { get; set; } 
} 

Затем измените свой код, чтобы создать список этих объектов, вставьте только нужные значения, а затем прикрепите список к сетке.

(Примечание: Это все непроверенный, и вы должны будете играть с ним, чтобы он работать в вашей ситуации.)

var myList = new List<MyClass>(); 

for (int i = 0; i <= totItems; i++) 
{ 
    var myClass = new MyClass(); 

    if (Seq3.Count - 1 >= i) 
     myClass.SeqNum = Seq3[i].ToString(); 

    if (PercentPopTolerance1.Count - 1 >= i) 
     myClass.Percent = PercentPopTolerance1[i].ToString(); 

    myList.Add(myClass); 
} 

myGrid.ItemsSource = myList; 
Смежные вопросы