1) You will need to loop through the nested tables.
foreach(GridTable gt in this.gridGroupingControl1.Engine.EnumerateTables())
{
GridRecord r = gt.CurrentRecord as GridRecord;
gt.TableModel.ActiveGridView.CurrentCell.EndEdit();
if(r != null)
r.EndEdit();
}
2)You will have to subscribe these events on all nested tables. So in Form.Load (not the contructor) after the DataSource has been set so the tables are known, use code like this to subscribe to the events:
foreach(GridTable gt in this.gridGroupingControl1.Engine.EnumerateTables())
{
gt.TableModel.ClipboardPaste += new GridCutPasteEventHandler(TableModel_ClipboardPaste);
gt.TableModel.ClipboardPasted += new GridCutPasteEventHandler(TableModel_ClipboardPasted);
}
Then the handlers could look like:
private void TableModel_ClipboardPaste(object sender, GridCutPasteEventArgs e)
{
foreach(GridTable gt in this.gridGroupingControl1.Engine.EnumerateTables())
{
GridRecord r = gt.CurrentRecord as GridRecord;
gt.TableModel.ActiveGridView.CurrentCell.EndEdit();
if(r != null)
r.EndEdit();
}
}
private void TableModel_ClipboardPasted(object sender, GridCutPasteEventArgs e)
{
this.gridGroupingControl1.Table.CurrentRecord = null;
}
3) I can see this problem in 3.0.1.0, but it is not in our lastest code build here. What version of our library are you running?
4) There are two selection architectures in GridGroupingControl. One is designed specifically for this control and can be used to select whole records. You indicate that you want to use this support by setting grid.TableOptions.ListBoxSelectionMode to something other than none and grid.TableOptions.AllowSelections to None. Then you will use this record selection mode. It is illustrated in the \Syncfusion\Essential Suite\3.0.1.0\Windows\Grid.Windows\Samples\Grouping\MultipleRecordSelection sample.
If you set the grid.TableOptions.AllowSelections to something other than None, you will use the selection architecture inherited from GridControlBase. If you set AllowSelections to Any, then you will be able to use the keyboard to select cell ranges. But this will only work properly with in a single table. If you try to do things in a way the crosses more than one table, things do not work properly.