How to implement the virtual grid that allows you to change the values in WinForms GridControl?
Virtual grid
In the virtual grid, the data is loaded to the cells by using the QueryCellInfo event. It is not possible to save the values because the event is recursively called, and it gets the data from the underlying source only that is the value entered in the cell is not registered in the source. So, the old value is maintained in the Grid. To make the Grid accept the changes, you can use the SaveCellInfo event handler.
Solution
In addition of handling the QueryStyleInfo, QueryRowCount and QueryColCount, you have to handle the SaveCellInfo event. In your handler, you must save the changes back to your external data source. The following code examples implement a virtual grid that allows you to change the data.
C#
void gridControl1_SaveCellInfo(object sender, GridSaveCellInfoEventArgs e) { // Update the Current cell value to the external source. extDataSource.Rows[e.RowIndex - 1][e.ColIndex - 1] = e.Style.CellValue; e.Handled = true; }
VB
Private Sub gridControl1_SaveCellInfo(ByVal sender As Object, ByVal e As GridSaveCellInfoEventArgs) 'Update the Current cell value to the external source. extDataSource.Rows(e.RowIndex - 1)(e.ColIndex - 1) = e.Style.CellValue e.Handled = True End Sub
Figure 1: Virtual grid with changed cells
In addition, to move rows and columns, your SaveCellInfo handler accepts changes in row or column order when the data is stored. This adds an additional layer of complexity to the data management.
Samples: https://www.syncfusion.com/downloads/support/directtrac/general/SaveCellInfoSample1944702654.zip
Reference link: https://help.syncfusion.com/windowsforms/grid-control/virtual-grid