2013-11-25 67 views
2

目前,我只是使用listviewitem.SubItems.Add()將項目添加到我的列表視圖。如何添加到特定的列表視圖列

問題是它只增加到前2列(逐列逐列)。

我希望能夠添加到任意列,例如:跳過yymm,total trans和yyww列並添加到doc列中的金額。

enter image description here

這是我當前如何添加到列表視圖:

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; 
相關問題