2011-03-08 61 views
2

希望我能做到這一點,我還是新望到C#...在列表視圖(C#)單獨列中存儲的字符串列表

我有一大堆的字符串列表,我想投入不同列表視圖的列。我能夠使用下面顯示的代碼來填充第一列,但無法弄清楚如何爲後續的列執行此操作。

 List<string> l_Time = new List<string>(); 

     //l_Time is populated by a method 

     foreach (string elem in l_Time) 
     { 
      listViewEvents.Items.Add(new ListViewItem(elem)); 
     } 

listViewEvents是我的ListView

任何幫助表示讚賞。

編輯:

兩個顯示解決方案的工作來存儲一整行,這我能網上找了很多我的列表。我希望能夠將每個列表存儲在自己的列中。這可能嗎?

+1

哪個UI框架?的WinForms? WPF? ASP.NET? – 2011-03-08 23:43:43

+0

@Joe,好問題!我假設他指的是Winforms。 – 2011-03-09 17:13:40

回答

3

試試這個:

listViewEvents.Items.Add(new ListViewItem(l_Time.ToArray())); 

ListViewItem類有一個構造函數的字符串數組。當使用該構造函數時,其他字符串將出現在其他列中。

如果您想要對其他列執行更多操作,那麼列表視圖項目具有一個SubItems屬性,該屬性包含一組ListViewItem.ListViewSubItem對象。您可以使用您想要的任何值創建這些值,並將它們添加到列表視圖項目對象中。

UPDATE

這裏是在單獨的列中顯示字符串列表的方式:像這樣調用

private static void DisplayListInColumns(ListView listView, List<string> values, int columnIndex) 
    { 
     for (int index = 0; index < values.Count; index++) 
     { 
      while (index >= listView.Items.Count) 
       listView.Items.Add(new ListViewItem()); 
      ListViewItem listViewItem = listView.Items[index]; 
      while (listViewItem.SubItems.Count <= columnIndex) 
       listViewItem.SubItems.Add(new ListViewItem.ListViewSubItem()); 
      listViewItem.SubItems[columnIndex].Text = values[index]; 
     } 
    } 

 List<string> listOne = new List<string>() { "one", "two", "three", "four", "five", "six" }; 
     List<string> listTwo = new List<string>() { "January", "February", "March", "April", "May" }; 
     List<string> listThree = new List<string>() { "alpha", "bravo", "charlie", "delta", "echo", "foxtrot", "golf", "hotel" }; 

     DisplayListInColumns(myListView, listOne, 0); 
     DisplayListInColumns(myListView, listTwo, 1); 
     DisplayListInColumns(myListView, listThree, 2); 
0

沿着這些線路試一下:

// This assumes all lists have the sample number of items 
for (int i = 0; i < list1.Count; i++) 
{ 
    ListViewItem lvi = new ListViewItem(list1[i]); 
    lvi.SubItems.Add(list2[i]); 
    lvi.SubItems.Add(list3[i]); 
    listViewEvents.Items.Add(lvi); 
} 
+0

這兩種解決方案都可以將我的列表存儲在一行中,我可以在網上找到很多列表。我希望能夠將每個列表存儲在自己的列中。這可能嗎? – Micky 2011-03-09 13:02:18

+0

不是直接。看到我更新的答案。 – 2011-03-09 23:28:09

0

確實有可能。假設您的所有列表具有相同的長度,只需一次查看第一個列表中的一個項目,然後爲每個項目添加SubItems來自每個其他列表的具有相同索引的元素。換句話說,在索引0處從每個列表索引1處從每個列表添加的項目一個 ListView項,則該項目以另一個 ListView項,依此類推。

相關問題