Scott
Just so this makes a little more sense and you reply asking if we could just raise the EditingStateChanged event as soon as someone changes a field within a row ... the answer is that if you look at the IsDirty property in code, we are just looking at the current row to see if it has been modified. This is not an internal counter within the BO itself...that is why it would require a lot of overhead in order to trap a changed field value and then raise the BO event. In this scenario it is generally best to create your own toolstrip if you are going to take this approach.