data virtualization via a ListView

Jan 29, 2009 at 10:21 AM
Edited Jan 29, 2009 at 10:31 AM
 I  have a collection that i bind to my WPF ListView.  It is (what i call) a "data window" to the larger mass i data that i access via a webservice.  I think i'll write my custom collection, deriving from ObservableCollection<T> or alternatively a collection that implements IList and INotifyCollectionChanged.   So when my "data window" changes the ListView gets its data automatically.

(a) Which custom collection way should i go?  Either way will dynamically update my ListView.  I am refactoring my current collection List<T> that i tweaked so it Sorts real fast.  But i can write a good Sort() method for either of the two refactoring ways.

(b) I'd like the scrollbar in my ListView to emulate that it is viewing much larger data than the Collection to which the ListView is actually binded.
Suggestion for this?

(c) How to get events from the scrollbar, like when scrolling to an area of data i have not yet downloaded. 
I'd need this to decide when to update the collection i binded to or alternatively rebind the ListView.
The above is a presentation layer exercise in data virtualisation (especially points (b) and (c)) - i hope it has someones interest!