I have a similar issue and I’m not sure if this is a bug oris by design. When Save is called on an object one of the first things thebusiness layer checks is IsDirty and if the object is not dirty bails out of the save method returning SaveUndoResult = Success. The problem I’ve run into is that if I setthe SetDirtyOnEdit property on an object to False and subseqently call saveeither directly or indirectly (i.e. there is a parent child relationship) andthe object is not dirty I get a SaveUndoResult = Success but the object remains in EditingState = Editing. Noramlly I would expect a successful save to reset the editingstate to idle. This issue only became apparent when I switched to having dialogs always open in edit mode and handling the cancel and save button enabled state based on the IsDirtyChanged event.
I’m currently working around the issue by using ny owninherited business layer that overrides the save methods. If the object is notdirty I call AcceptChanges on the data table in case it contiains changes from aprior save (if the object was a parent or had registered foreign keys) and thencall Undo on all rows to set the editingState to idle.