Category / Section
How to add copied rows as new rows in WinRT DataGrid while pasting?
2 mins read
You can customize the clipboard operations in the SfDataGrid by overriding the GridCutCopyPaste class and assigning its instance to the SfDataGird.GridCopyPaste property as described in the following code example.
C#
this.sfdatagrid.GridCopyPaste = new CustomCopyPaste(sfdatagrid);
You can paste the copied content (clipboard content) as new rows in the SfDataGrid by overriding the PasteToRows method of the GridCutCopyPaste.
C#
public class CustomCopyPaste : GridCutCopyPaste { public CustomCopyPaste(SfDataGrid sfgrid) : base(sfgrid) { } protected override void PasteToRows(object clipboardrows) { var copiedRecord = (string[])clipboardrows; int copiedrecordscount = copiedRecord.Count(); //Based on the clipboard count added the new record to be pasted. if (copiedrecordscount > 0) { for (int i = 0; i < copiedrecordscount; i++) { // Creates new record. this.dataGrid.View.AddNew(); for (int j = 0; j < this.dataGrid.Columns.Count; j++) { var record = copiedRecord[i]; string[] splitRecord = Regex.Split(record, @"\t"); //Adds the new record by using the PasteToCell method, by passing the //created data, particular column, and clipboard value. this.PasteToCell(this.dataGrid.View.CurrentAddItem, this.dataGrid.Columns[j], splitRecord[j]); } // Commits the pasted record. this.dataGrid.View.CommitNew(); } } } }
So, when you trigger the paste action in the SfDataGrid by pressing Ctrl+V, new rows are added based on the clipboard content.
Sample Links: