View.ObjectSpace Property
Provides access to the object space within which a View was created.
Namespace: DevExpress.ExpressApp
Assembly: DevExpress.ExpressApp.v24.2.dll
NuGet Package: DevExpress.ExpressApp
#Declaration
public virtual IObjectSpace ObjectSpace { get; }
#Property Value
Type | Description |
---|---|
IObject |
An IObject |
#Remarks
An Object Space (see BaseObjectSpace) represents an instrument that allows managing a cache with persistent objects that are currently used in a View. Via an Object Space, a particular objects set is retrieved from the database to a data set. This allows making changes to objects within this data set, and canceling changes. This does not influence the general database. Use this property to access the current View’s Object Space.
Note
Do not use a root View’s Object Space for the creation of another root View in it. Instead, create a new Object Space via the Xaf
Note
The Object
The following example uses a Parametrized Action to search for a Person by LastName, and then assigns all deferred tasks to that person.
using System.Collections.Generic;
using DevExpress.Data.Filtering;
using DevExpress.ExpressApp;
using DevExpress.ExpressApp.Actions;
using DevExpress.Persistent.Base;
using DevExpress.Persistent.Base.General;
using DevExpress.Persistent.BaseImpl;
using MainDemo.Module.BusinessObjects;
// ...
public class AssignTasksController : ObjectViewController<ListView, DemoTask> {
public AssignTasksController() {
ParametrizedAction assignTasksAction = new ParametrizedAction(
this, "AssignTasks", PredefinedCategory.Edit, typeof(string));
assignTasksAction.Execute += AssignTasksAction_Execute;
}
private void AssignTasksAction_Execute(object sender, ParametrizedActionExecuteEventArgs e) {
IObjectSpace objectSpace = View.ObjectSpace;
string personParamValue = e.ParameterCurrentValue as string;
Person person = objectSpace.FirstOrDefault<Person>(p => p.LastName.Contains(personParamValue));
if(person != null) {
CriteriaOperator taskCriteria = CriteriaOperator.Parse("[Status] = ?", TaskStatus.Deferred);
IList<DemoTask> tasks = objectSpace.GetObjects<DemoTask>(taskCriteria);
foreach(DemoTask task in tasks) {
task.AssignedTo = person;
}
}
}
}
#Related GitHub Examples
The following code snippets (auto-collected from DevExpress Examples) contain references to the ObjectSpace property.
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.