IObjectSpace.Committed Event
Occurs after persistent object changes are stored in the database.
Namespace: DevExpress.ExpressApp
Assembly: DevExpress.ExpressApp.v25.2.dll
NuGet Package: DevExpress.ExpressApp
Declaration
Event Data
The Committed event's data class is EventArgs.
Remarks
The Committed event is raised after the IObjectSpace.CommitChanges method call.
In the BaseObjectSpace descendant, the BaseObjectSpace.CommitChanges method invokes the BaseObjectSpace.DoCommit method and raises the Committed event. Override the BaseObjectSpace.DoCommit method to implement your logic to persist changes.
The following code shows how to manually save child collection changes made in the parent Detail View:
using DevExpress.ExpressApp;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using YourSolutionName.Module.BusinessObjects;
namespace YourSolutionName.Module.Controllers {
public class MyViewController : ObjectViewController<DetailView, Parent> {
List<Child> detailObjectsCache = new List<Child>();
protected override void OnActivated() {
base.OnActivated();
ObjectSpace.CustomCommitChanges += ObjectSpace_CustomCommitChanges;
ObjectSpace.Committing += ObjectSpace_Committing;
ObjectSpace.Committed += ObjectSpace_Committed;
ObjectSpace.Reloaded += ObjectSpace_Reloaded;
}
protected override void OnDeactivated() {
ObjectSpace.CustomCommitChanges -= ObjectSpace_CustomCommitChanges;
ObjectSpace.Committing -= ObjectSpace_Committing;
ObjectSpace.Committed -= ObjectSpace_Committed;
ObjectSpace.Reloaded -= ObjectSpace_Reloaded;
base.OnDeactivated();
}
void ObjectSpace_Reloaded(object sender, EventArgs e) {
detailObjectsCache.Clear();
}
void ObjectSpace_Committed(object sender, EventArgs e) {
detailObjectsCache.Clear();
}
void ObjectSpace_Committing(object sender, CancelEventArgs e) {
IObjectSpace os = (IObjectSpace)sender;
for (int i = os.ModifiedObjects.Count - 1; i >= 0; i--) {
object item = os.ModifiedObjects[i];
if (typeof(Child).IsAssignableFrom(item.GetType())) {
detailObjectsCache.Add(item as Child);
os.RemoveFromModifiedObjects(item);
}
}
}
void ObjectSpace_CustomCommitChanges(object sender, HandledEventArgs e) {
// Implement custom logic to save Detail objects here.
foreach (Child detailObject in detailObjectsCache) {
//...
}
}
}
}
Related GitHub Examples
The following code snippet (auto-collected from DevExpress Examples) contains a reference to the Committed event.
Note
The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.