Virtual mode allows DataSource for Entity Framework to provide data binding of GUI controls to very large data sets with no delays, no code, and without resorting to paging. This is done by simply setting the ClientViewSource.VirtualMode property. It has three possible values:
- None: Virtual mode is not enabled. This is the default value.
- Managed: Virtual mode (fetching data from the server) is driven by a grid control. The grid control driving it is specified by setting an extender (attached) property on the grid. Most popular grids are supported, but not all grids (see the list below). If you need virtual mode with one of the supported grids, use the Managed option, do not use Unmanaged. Performance is optimal with the Managed option because it is specifically optimized for the grid in question. In addition to the grid control there can be other simple controls bound to the same data source (for example, TextBox controls), but no "complex" bound control (for example, another grid or list) in addition to the driving grid should be used.
Managed mode is currently supported for the following grid controls:
- ComponentOne: C1FlexGrid (WinForms, WPF, Silverlight), C1DataGrid (WPF, Silverlight).
- Microsoft: DataGridView (WinForms), DataGrid (WPF), DataGrid (Silverlight; but see below about a problem with Microsoft DataGrid for Silverlight).
- Unmanaged: Virtual mode (fetching data from the server) is driven by the data source itself, regardless of what type of controls are bound to it. Use this option if you need virtual mode with a grid/list/etc. control that does not belong to the list of supported grids below (but note that “simple” controls such as TextBox that are only bound to the current record and not to the entire data set can be used without limitations with either Managed or Unmanaged mode). Performance in Unmanaged is almost as good as in Managed, but it is subject to some limitations. See Unmanaged virtual mode limitations for more information. Those limitations are not very restricting, but they cannot be checked automatically, so, before deciding to use the Unmanaged option, make sure you do not break the limitation rules. Also, in Unmanaged mode, the PageSize property must be set to a number greater than your GUI control will show at any given time (PageSize is ignored in Managed mode).
See Also