我有一个由7个不同阵列组成的结构,每个阵列的大小为20000
我想将每个数组显示为ListView中的单个列
如何在ListView中逐列添加值,以便单个列显示单个数组?我在ListView中有7列
我对C#很新。我确实知道如何逐行填充数据,但我第一次遇到了逐列填充。
任何形式的帮助。
答案 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。那里没有虚拟化,尽管你可能会发现一些支持它的第三方组件。考虑分页。