0

私はリストビューを持っています。私の主な目標は、ListViewItems をクリップボードにコピーしてから Excel にコピーできるようにすることです。しかし、ListView セルを読み取るのに問題があります。

私が使用する列を取得するには:

var columnNames = new StringBuilder();

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

行を追加したいのですが、最初の列の最初のセルにしかアクセスできず、2 番目または 3 番目のセルにはアクセスできません..:

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());

助けていただければ幸いです..

4

1 に答える 1

1

反復ごとに .ContainerFromIndex 呼び出しのインデックスを変更していません。そこでループ変数を使用して、何が得られるかを確認してください。

于 2012-08-27T14:51:57.353 に答える