DataControlBase.PastingFromClipboard Event
Occurs when some information is pasted from the clipboard to the grid.
Namespace: DevExpress.Xpf.Grid
Assembly: DevExpress.Xpf.Grid.v24.2.Core.dll
NuGet Package: DevExpress.Wpf.Grid.Core
#Declaration
#Event Data
The PastingFromClipboard event's data class is DevExpress.Xpf.Grid.PastingFromClipboardEventArgs.
#Remarks
GridControl provide two events that allow you to manually process clipboard operations.
- The GridControl.CopyingToClipboard event is fired before row/cell values are copied to the clipboard by an end-user, or in code. To cancel default processing, set the event parameter’s Handled property to true. This event isn’t fired if the DataControlBase.ClipboardCopyMode property is set to None.
The PastingFromClipboard event is fired after an end-user has pressed Ctrl+V or Shift+Ins.
Note
Grid
Control raises the PastingFrom event when the Ctrl+V key combination is pressed, no matter in what state other keyboard buttons are. This allows you to process additional pasting scenarios (e.Clipboard g. pressing Ctrl+Shift+V) by checking the Keyboard. Modifiers property value.
To learn more, see Clipboard Management.
Note
The Grid
To detect whether the Grid
The following example processes clipboard data so a user can copy and paste a rectangular area from a source table to a grid:
<dxg:GridControl x:Name="gridControl"
PastingFromClipboard="gridControl_PastingFromClipboard"
AutoGenerateColumns="AddNew"
ItemsSource="{Binding MyObjects}"
SelectionMode="Cell">
<!--...-->
</dxg:GridControl>
private void gridControl_PastingFromClipboard(object sender, DevExpress.Xpf.Grid.PastingFromClipboardEventArgs e) {
int baseRowIndex = tableView.FocusedRowHandle;
int baseColumnIndex = tableView.VisibleColumns.IndexOf(gridControl.CurrentColumn as GridColumn);
string[] clipRows = Clipboard.GetText().Split('\n');
int i = 0;
foreach (var clipRow in clipRows) {
string[] clipRowCells = clipRow.Split('\t');
int j = 0;
foreach (var clipRowCell in clipRowCells) {
gridControl.SetCellValue(baseRowIndex + i, tableView.VisibleColumns[baseColumnIndex + j], clipRowCell.Replace("\r", ""));
j++;
if (baseColumnIndex + j > tableView.VisibleColumns.Count) break;
}
i++;
}
e.Handled = true;
}