IObjectSpace.CreateObject<ObjectType>() Method
Creates an object of the type designated by the specified generic type parameter.
Namespace: DevExpress.ExpressApp
Assembly: DevExpress.ExpressApp.v24.1.dll
NuGet Package: DevExpress.ExpressApp
Declaration
Type Parameters
Name |
---|
ObjectType |
Returns
Type | Description |
---|---|
ObjectType | A created object of the specified type. |
Remarks
The following example uses a Parametrized Action to create a new Department object and add it to the Departments
collection of the current Contact
object.
using DevExpress.ExpressApp;
using DevExpress.ExpressApp.Actions;
using DevExpress.Persistent.Base;
// ...
public class AddDepartmentController : ObjectViewController<DetailView, Contact> {
public AddDepartmentController() {
ParametrizedAction addDepartmentAction = new ParametrizedAction(this, "AddDepartment", PredefinedCategory.Edit, typeof(string));
addDepartmentAction.Execute += AddDepartmentAction_Execute;
}
private void AddDepartmentAction_Execute(object sender, ParametrizedActionExecuteEventArgs e) {
Department department = ObjectSpace.CreateObject<Department>();
department.Title = e.ParameterCurrentValue as string;
Contact contact = (Contact)View.CurrentObject;
contact.Departments.Add(department);
}
}
If you implement the IObjectSpace interface in the BaseObjectSpace class’ descendant, you don’t have to override the CreateObject<ObjectType> method entirely. The BaseObjectSpace.CreateObject<ObjectType> method invokes a protected virtual BaseObjectSpace.CreateObjectCore method and then sets the returned object modified by calling the BaseObjectSpace.SetModified method for it. So, you should only override the CreateObjectCore method.
The created object will be saved to the database when calling the IObjectSpace.CommitChanges method.
Related GitHub Examples
The following code snippets (auto-collected from DevExpress Examples) contain references to the CreateObject<ObjectType>() method.
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.