wpf listviewitem 在初始化时返回 null
wpf listviewitem returning null when initialized
这个问题似乎应该有一个非常简单的答案,但我似乎无法弄清楚我的程序中发生了什么。
我有一个使用 ListView
的 C# WPF 应用程序。 ListView
中有几个项目,我通过这样做
添加到其中
myListView.Items.Add("one");
myListView.Items.Add("two");
现在我尝试访问 ListView
中的第二个 ListViewItem
。
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];
myListView.Items[myListView.Items.Count - 1]
returns 一个 string
,即您添加到 Items
collection.
的实际项目
您可以使用 ItemContainerGenerator
:
获取对此项的 ListViewItem
容器的引用
ListViewItem item = myListView.ItemContainerGenerator.ContainerFromIndex(myListView.Items.Count - 1) as ListViewItem;
请注意,如果您在 ListView
中有很多项目并且您正试图获取对容器的引用但由于性能原因已被虚拟化的项目,则此方法将不起作用。
您可能应该问自己为什么需要对 ListViewItem
容器的引用。可能有更好的方法来解决您正在尝试做的任何事情。
这个问题似乎应该有一个非常简单的答案,但我似乎无法弄清楚我的程序中发生了什么。
我有一个使用 ListView
的 C# WPF 应用程序。 ListView
中有几个项目,我通过这样做
myListView.Items.Add("one");
myListView.Items.Add("two");
现在我尝试访问 ListView
中的第二个 ListViewItem
。
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];
myListView.Items[myListView.Items.Count - 1]
returns 一个 string
,即您添加到 Items
collection.
您可以使用 ItemContainerGenerator
:
ListViewItem
容器的引用
ListViewItem item = myListView.ItemContainerGenerator.ContainerFromIndex(myListView.Items.Count - 1) as ListViewItem;
请注意,如果您在 ListView
中有很多项目并且您正试图获取对容器的引用但由于性能原因已被虚拟化的项目,则此方法将不起作用。
您可能应该问自己为什么需要对 ListViewItem
容器的引用。可能有更好的方法来解决您正在尝试做的任何事情。