wpf listviewitem在初始化时返回null

时间:2018-03-16 16:17:03

标签: c# wpf listview listviewitem

这个问题似乎应该有一个非常简单的答案,但我似乎无法弄清楚我的计划中发生了什么。

我有一个使用ListView的C#WPF应用程序。 ListView中有几个项目,我通过这样做添加到其中

myListView.Items.Add("one");
myListView.Items.Add("two");

现在我尝试访问ListViewItem中的第二个ListView

ListViewItem item = myListView.Items[myListView.Items.Count - 1] as ListViewItem;

正在发生的错误是我的ListViewItem item为空且未重新调整ListViewItem

我注意到当我输入以下代码时,我的var item返回一个值为“two”的字符串。所以我不明白为什么我无法以ListViewItem来访问该对象。

var item = clv_TraceGroups.Items[clv_TraceGroups.Items.Count - 1];

1 个答案:

答案 0 :(得分:0)

myListView.Items[myListView.Items.Count - 1]会返回string,即您添加到Items集合中的实际项目。

您可以使用ListViewItem获取此项目的ItemContainerGenerator容器的引用:

ListViewItem item = myListView.ItemContainerGenerator.ContainerFromIndex(myListView.Items.Count - 1) as ListViewItem;

请注意,如果ListView中有许多项目,并且您尝试获取对容器的引用,那么这种方法将无效,但出于性能原因,该项目已被虚拟化了。

您应该问自己为什么需要引用ListViewItem容器。可能有更好的方法可以解决你想要做的事情。