Programming Guide > Virtual Mode > Other Virtual Mode Limitations |
· Binding two independently scrollable controls (such as grids or lists that can be scrolled to different, independent locations in the data set) to a single data source in virtual mode is not supported in Managed mode as well as in Unmanaged, and for the same reason. The difference is just that in Managed mode it is less dangerous because you will immediately see the effect; there is no element of unpredictability in the behavior. If in addition to the main "driving" bound control there is another scrollable control bound to the same data source, that control is not "driving", that is, scrolling in it does not fetch data; therefore, if you scroll beyond the rows that are visible in the main control, you will see empty rows.
· In both Managed and Unmanaged modes, grids, lists, and other controls bound to the entire data set (as opposed to a single record), must not do anything with all rows of the data source at once. In other words, a control should not perform actions in its code that involve going in a loop over all rows of the data source and doing something for each row. That is for the simple reason that the number of rows in virtual mode can be very large, many thousands or even millions of rows. It is, in fact, unlimited. Properly designed controls that do not rely on an assumption that the number of rows in its data source is small, will do fine in Entity Framework DataSource (EF DataSource) virtual mode. But those that were designed specifically for small data sources, those that loop through all their rows, can cause long delays with very large number of rows. C1FlexGrid and C1DataGrid (for WinForms/WPF/Silverlight) are OK, as are Microsoft DataGridView (WinForms) and Microsoft DataGrid for WPF. But Microsoft DataGrid for Silverlight (in its current version, Silverlight 4) is not recommended for EF DataSource virtual mode because it loops through all rows to compute its height.