You are right that the WorkbookContentChanged event would notify you for each edit. However, this event does not give information about which range was modified. I would suggest using the CellPropertyChanged event instead as its event arguments provide this information. You can find the event in the Cell property of each worksheet and the handler would look like this:
sender, CellPropertyChangedEventArgs e)
(e.Property == CellPropertyDefinitions.ValueProperty)
CellRange range = e.CellRange;
If your workbook has more than one worksheet, you can subscribe to the ActiveSheetChanged event of the RadSpreadsheet. This way each time the active worksheet is changed, you will make sure that you are subscribed to its CellPropertyChanged event.
.radSpreadsheet.Workbook.ActiveWorksheet.Cells.CellPropertyChanged += Cells_CellPropertyChanged;
.radSpreadsheet.ActiveSheetChanged += radSpreadsheet_ActiveSheetChanged;
sender, EventArgs e)
.radSpreadsheet.ActiveWorksheet.Cells.CellPropertyChanged -= Cells_CellPropertyChanged;
.radSpreadsheet.ActiveWorksheet.Cells.CellPropertyChanged += Cells_CellPropertyChanged;
The event will not fire when the focus is changed, so you will get the last edit position, as you described.
I hope this helps. Please, let us know if you have any questions.
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Telerik Feedback Portal
and vote to affect the priority of the items