2012-08-27 119 views
0

我有一個ListView。我的主要目標是能夠將ListViewItems複製到剪貼板,然後複製到Excel。但是我有麻煩閱讀ListView單元格。從單元格獲取值(ListView&ListViewItems)

得到我使用的列:

var columnNames = new StringBuilder(); 

foreach (GridViewColumn column in ((GridView)(listViewSolution.View)).Columns) 
{ 
     columnNames.Append(column.Header + "\t"); 
} 

現在我想添加的行,但我只能訪問第一個單元格中的第一列,而不是第二或第三..:

var stringBuilder = new StringBuilder(); 

for (int i = 0; i < listViewSolution.Items.Count; i++) 
{ 
    stringBuilder.Append("\n"); 
    //foreach (GridViewColumn column in ((GridView)(listViewSolution.View)).Columns) 
    //{ 
     //if (column.Header != null) 
     //{ 
      ListViewItem myListBoxItem = 
       (ListViewItem)(listViewSolution.ItemContainerGenerator.ContainerFromIndex(0)); //= Index 0 -> First Row, First Cell; Index 1 = Second Row, First Cell; But do we get: Second Column, First Row???? 
      stringBuilder.Append(myListBoxItem.Content.ToString() + "\t"); 
     //} 
    //} 
} 
System.Windows.Clipboard.SetData(DataFormats.Text, columnNames.ToString() + stringBuilder.ToString()); 

幫助會非常感激..

回答

1

你不是在改變指數.ContainerFromIndex調用每個迭代。在那裏使用你的循環變量,看看你得到了什麼。

+0

當然,我已經嘗試過了。看看背後的註釋:'.ContainerFromIndex',用下一個索引(1),我切換到下一行,但不切換到下一個單元格第一行,我需要先從第一行獲取所有數據,然後再增加下一行的索引。 – eMi