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