Yes, you will want to add a handler to the CurrentDataTableRefilled event as well and inside of that handler, remove the RowChanged handler from the old DataTable and add it to the new CurrentDataTable (you'll need to store off a reference to the DataTable you've attached to so that you can remove the handler from it). When you refill a business object, the old object is disposed and a new DataTable is created, so your event handler it attached to the "dead" DataTable, not the live one. So, add the handler initially, just like you're doing now, but also add a handler to the CurrentDataTableRefilled event on the same business object and when it's fired, remove the old RowChanged handler and add a new one.FYI, you might want to look into attaching to the CurrentDataTable.DefaultView.ListChanged event. It tells you almost everything that the RowChanged event does, but it also tells you what column changed when a new value is set on a field.