我刚刚开始在C#.net中使用ListView。
我知道如何添加项目和子项目。 通过列表视图,我想从多行中获取整个列的所有数据。
我想知道如何做到这一点。
我发现这个代码从一行中列出特定的选定数据:
ListView.SelectedIndexCollection sel = listView1.SelectedIndices;
if (sel.Count == 1) { ListViewItem selItem = listView1.Items[sel[0]]; MessageBox.Show(selItem.SubItems[2].Text); }
这是有帮助的,但我想列出所有在一行中的项目,可能是我想要添加数组中的所有列项目?
private string[] GetListViewItemColumns(ListViewItem item) { var columns = new string[item.SubItems.Count]; for (int column = 0; column < columns.Length; column++) { columns[column] = item.SubItems[column].Text; } return columns; }
我会建议一些谨慎的做法。 ListView实际上是为了显示信息,它不是一个伟大的集合类。 从数据中获取数据是慢而且糟糕的,它只能存储字符串。 将程序中的数据保持原来的形式,可能是List<Foo>
。 现在它简单快捷。
foreach(listView1.Items中的ListViewItem项){ //用项目做一些事情 }
你可以通过foreach(ListViewItem item in listView1.Items) { foreach(var subtem in item.SubItems) { // Do what ever you want to do with the items. } }
foreach(ListViewItem item in listView1.Items) { foreach(var subtem in item.SubItems) { // Do what ever you want to do with the items. } }