title: Get ListView Visible items
body: <p>I have a <code>ListView</code> which might contains a lot of items, so it is <code>virtualized</code> and recycling items. It does not use sort. I need to refresh some value display, but when there are too many items, it is too slow to update everything, so I would like to refresh only the visible items.  </p>
  
  <p>How could I get a list of all currently displayed items ? I tried to look into the <code>ListView</code> or in the <code>ScrollViewer</code>, but I still have no idea how to achieve this.  The solution must NOT go through all items to test if they can be seen, because this would be too slow.</p>
  
  <p>I'm not sure code or xaml would be useful, it is just a <code>Virtualized</code>/<code>Recycling ListView</code> with its <code>ItemSource</code> bound to an <code>Array</code>.</p>
  
  <p><strong>Edit :</strong>
  Answer :<br>
  thanks to akjoshi, I found the way :</p>
  
  <ul>
  <li><p>get the <code>ScrollViewer</code> of the <code>ListView</code> 
  (with a <code>FindDescendant</code> method, that you can do yourself with the <code>VisualTreeHelper</code> ).   </p></li>
  <li><p>read its <code>ScrollViewer.VerticalOffset</code> : it is the number of the first item shown  </p></li>
  <li>read its <code>ScrollViewer.ViewportHeight</code> : it is the count of items shown.<br>
  Rq : <code>CanContentScroll</code> must be true.</li>
  </ul>