If you change the SetDirtyOnTrue to False the MaintenanceFormToolstrip will not behave properly any longer. This is by design. This is due to the lack of events that get raised...primarily the EditingStateChanged event. So the toolbar is actually behaving properly since it goes off of the editing state of the BO...however, just changing a field will make a BO dirty, but it does not raise the EditingState event and it would be difficult to know without creating a lot of overhead. 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.