I’ve been waiting for the DataGrid to show its face amongst the WPF community and now it has. Xceed has done a great job in providing folks the ability to have data grids housed inside WPF applications.
I’m not entirely sure how they did it specifically, but my theory would be that it’s probably a display list of items, and maybe it’s 20 at a time (20, 40, 100 etc). In each list item, there is most likely a cell renderer, in which you the developer could have your pick / choice of how an individual cell could be rendered. So for alternating rows you may choose a different texture or style to accommodate this and so on. Then as you scroll down, it’s refreshing the 20 rows of cells only (appearing to scroll). That would be my theory anyway.
I know in the FLEX world of things, putting together a DataGrid component is no easy thing, but WPF and FLEX have a lot in common when it comes to this, so if you’re looking to build your own DataGrid, it may pay to observe and analyse how other technologies are doing it. At the same time, remember that it’s sleight of hand when dealing with large datasets. In that, you could have say 1 billion rows of data ready to be served inside a DataGrid and to do this you simply decrease the scroll thumbnail, and allow the user to scroll down (all the while each increment it moves up and down is hyper sensitive based on the data amount). As the user scrolls down, they are essentially moving through partitions of data inside your persistence layer (MS SQL, ORACLE etc) and you’re only asking for around 100 rows of data at time. So it appears there are large amounts of data, but its sleight of hand.
That’s the theory anyway. Great work Xceed!