たくさんのアイテムが入ってListViewいるかもしれないのでvirtualized、リサイクルアイテムです。並べ替えは使用しません。値の表示を更新する必要がありますが、項目が多すぎると更新が遅すぎるため、表示されている項目のみを更新したいと思います。
現在表示されているすべてのアイテムのリストを取得するにはどうすればよいですか?ListViewまたはを調べてみましたがScrollViewer、それを実現する方法がまだわかりません。ソリューションは、すべての項目を調べて、それらが表示されるかどうかをテストする必要はありません。これは遅すぎるためです。
コードまたはxamlが役立つかどうかはわかりませんが、これはVirtualized/Recycling ListViewにItemSourceバインドされただけArrayです。
編集:
回答:
akjoshiのおかげで、私は方法を見つけました:
のを取得し
ScrollViewerますListView(FindDescendantメソッドを使用して、で自分で実行できますVisualTreeHelper)。そのを読んでください
ScrollViewer.VerticalOffset:それは表示された最初のアイテムの番号です- そのを読んでください
ScrollViewer.ViewportHeight:それは表示されたアイテムの数です。
Rq:CanContentScroll真でなければなりません。