【发布时间】:2009-06-29 22:19:01
【问题描述】:
这是一个奇怪的问题,我没有添加太多代码,因为我不知道要开始。我在虚拟模式下有一个 listview 控件,如果我过滤 listview 以显示所有名为 John 的人,然后我会看到 3 个名为 John 的用户,然后我取消过滤器将所有值设置为 null 并将所有数据返回到 listview,我现在列表中有数百个项目,但除非我向下滚动列表视图,否则我只能在屏幕上看到 30 个。
然后我使用下面的代码检查每一行中的一个复选框,除了 3 个 Johns 之外,所有这些都被选中,但是如果我可以在 listview 中看到 3 个 Johns 中的 1 个而不滚动,然后运行可见 John 下方的代码被选中.
for (int i = 0; i < this._items.Count; i++)
{
this._items[i].Checked = true;
}
在上面的代码中检查复选框之前,我已经检查了复选框的状态,如果 John 可见,则复选框认为它未选中 (false),如果它不可见,则认为它已选中 (true)。因此,在屏幕上有一个可见的约翰,复选框看起来没有选中,运行测试证明它没有选中,对于两个约翰,我看不到他们相信他们被选中,但如果我向下滚动以便我可以看到他们不是。
有什么想法吗?
【问题讨论】:
-
您在什么情况下填充 this._items 集合?