By default a WPF ListView
(with a GridView
) is virtualized. So I bind my ItemSource
property to an observable collection in a ViewModel as I am using a MVVM pattern (with Caliburn.Micro but I guess that does not matter).
How can I have a method invoke on my item view models (the items of the itemsource) when they are used (in scope and represented by a UI listviewitem) by the ListView and when they are unused (no longer in scope and represented on the UI)?
It would be very nice to lazy load some detail data but only for visible records.
You could have a derived ListView with overridden
PrepareContainerForItemOverride
andClearContainerForItemOverride
methods: