STEPS TO REPRODUCE: 1) Create an excel file with sample string values (for example 3x3): | Value 1 | Value 2 | Value 3 | | Value 4 | Value 5 | Value 6 | | Value 7 | Value 8 | Value 9 | 2) Validate as double: private ErrorProvider errorProvider = new ErrorProvider(); void gridView_CellValidated(object sender, CellValidatedEventArgs e) { if (e.Value == null) { return; } var cell = e.Row.Cells[e.ColumnIndex]; double value = 0; if (double.TryParse(e.Value.ToString(), out value)) { cell.ErrorText = string.Empty; errorProvider.SetError(gridView, string.Empty); } else { cell.ErrorText = "Wrong input format"; errorProvider.SetError(gridView, "Wrong input format"); } } 3) Copy the cells from excel and paste them in the grid Expected result: Validate all cells Actual result: Only the current cell is being validated and the CellValidated and CellValidating events are not fired for the other cells WORKAROUND: public class CustomGridBehavior : BaseGridBehavior { Form1 form; public CustomGridBehavior(Form1 form) { this.form = form; } public override bool ProcessKey(KeyEventArgs keys) { if (keys.KeyCode == Keys.V && keys.Control) { GridControl.MasterTemplate.Paste(); foreach (GridViewRowInfo row in GridControl.ChildRows) { form.ValidateCell(row.Cells[GridControl.CurrentColumn.Index]); } return true; } return base.ProcessKey(keys); } } void gridView_ContextMenuOpening(object sender, ContextMenuOpeningEventArgs e) { foreach (RadMenuItem item in e.ContextMenu.Items) { if (item.Text == "Paste") { e.ContextMenu.Items.Remove(item); break; } } RadMenuItem myPasteItem = new RadMenuItem("Paste"); myPasteItem.Click += new EventHandler(myPasteItem_Click); e.ContextMenu.Items.Add(myPasteItem); } void myPasteItem_Click(object sender, EventArgs e) { gridView.MasterTemplate.Paste(); foreach (GridViewRowInfo row in gridView.ChildRows) { ValidateCell(row.Cells[gridView.CurrentColumn.Index]); } }