从C#中的数组逐列填充ListView

时间:2014-09-08 09:23:13

标签: c# arrays visual-studio-2010 listview

我有一个由7个不同阵列组成的结构,每个阵列的大小为20000 我想将每个数组显示为ListView中的单个列 如何在ListView中逐列添加值,以便单个列显示单个数组?我在ListView中有7列 我对C#很新。我确实知道如何逐行填充数据,但我第一次遇到了逐列填充。
任何形式的帮助。

2 个答案:

答案 0 :(得分:1)

终于得到了解决方案!!!

string[] temp = new string[10];
for (int i = 0; i < 20000; i++)
        {
            temp[0] = Array1[i].ToString();
            temp[1] = Array2[i].ToString();
            temp[2] = Array3[i].ToString();
            temp[3] = Array4[i].ToString();
            temp[4] = Array5[i].ToString();
            temp[5] = Array6[i].ToString();
            temp[6] = Array7[i].ToString();
            temp[7] = Array8[i].ToString();
            ListViewItem listItem = new ListViewItem(temp);
            MyListView.Items.Add(listItem);
        }

答案 1 :(得分:0)

假设所有阵列的大小完全相同,请考虑以下想法:

for (var i = 0; i < 20000; i++)
{ 
   AddRow(column1[i], column2[i], ...);
}

如果它是您问题的一部分:不,列表视图不支持按列添加数据。我所知道的任何本机WPF或第三方控件都没有。

<强>性能: 至于该解决方案的性能,它不会遍历需要时间的20k记录,而是创建20k个wpf对象。阅读有关wpf虚拟化的信息,以解决这个问题。

另外请记住,您可以轻松地花费数周和数月来研究更快的控制和渲染技术,但最终归结为用户并不真正需要来查看所有20k记录屏幕上。理解这么多信息是不可能的。虚拟化只是另一种不加载用户无法看到的东西的技术,但您可以通过分页,过滤或分组来解决问题。

<强>的WinForms: 我刚刚意识到你不是在谈论WPF,你可能在谈论WinForms。那里没有虚拟化,尽管你可能会发现一些支持它的第三方组件。考虑分页。