Provide more information with the Binding.BindingDataChanged event (for Excel table bindings)
The current BindingDataChangedEventArgs object passed to the event handler for the Binding.BindingDataChanged event only contains properties for the binding that raised the event and the type of event. There is no specific information about what cells, columns, or rows in the table object were changed. When dealing with tables with many rows and columns and/or end-user gestures that edit/insert/delete many cells/rows/columns at once, this API is not very useful. Contrast this to the (Excel) COM APIs where, at least, the SheetChanged event provides a Range object that describes what was changed.
Thank you for your request!
We are collecting API requirements for developing Office Add-ins in Excel, specifically for Events API.
If you are considering moving an existing COM/VSTO/VBA Add-in to Office Add-in, or creating a new Office Add-in in Excel, and have events requirements, please fill the survey below and help us focus on the right set of events and design. We truly appreciate your help!
Office Extensibility Team
Renil Abdulkader commented
Very true. This is affecting our team also. The suggested workaround of keeping track of BindingSelectionChanged event before DataChanged event is not scalable when users drag and drop on excel cells.
Lance Austin commented
This missing feature is a show stopper for my team. We were excited to leverage the addin model but we need to be able to do formatting on an individual cell when it is changed to indicate to a user that they have edited those cells. Along with that we need to know which row as well so that we can batch all the changed rows into a single update to the backend API. Therefore, this event or a new type of event is needed that would indicate what cell has changed and what row. I'm sure there is other information we could use but at a minimum row and cell.
Since this doesn't exist today (to my knowledge) my team will have to go with a VSTO solution which ideally we would have wanted to avoid.