我有一个ListView
可能包含很多物品的物品,所以它是virtualized
和回收物品。它不使用排序。我需要刷新一些值显示,但是当项目太多时,更新所有内容太慢,所以我想只刷新可见项目。
如何获得所有当前显示项目的列表?我试图查看ListView
or ScrollViewer
,但我仍然不知道如何实现这一点。解决方案不能遍历所有项目来测试它们是否可以看到,因为这太慢了。
我不确定代码或 xaml 是否有用,它只是一个/Virtualized
绑定到一个.Recycling ListView
ItemSource
Array
编辑:
回答:
感谢akjoshi,我找到了方法:
获得
ScrollViewer
of theListView
(使用一种FindDescendant
方法,您可以自己使用VisualTreeHelper
)。阅读它
ScrollViewer.VerticalOffset
:它是显示的第一个项目的编号- 阅读它
ScrollViewer.ViewportHeight
:它是显示的项目数。
Rq :CanContentScroll
必须为真。