IObjectSpace.GetObjects<T>(CriteriaOperator) Method
Returns an IList collection of objects of the specified type, retrieved to the current Object Space and filtered according to the specified criteria.
Namespace: DevExpress.ExpressApp
Assembly: DevExpress.ExpressApp.v24.1.dll
NuGet Package: DevExpress.ExpressApp
Declaration
Parameters
Name | Type | Description |
---|---|---|
criteria | CriteriaOperator | A CriteriaOperator which specifies the criteria for object selection. |
Type Parameters
Name | Description |
---|---|
T | The Type of objects that are retrieved. |
Returns
Type | Description |
---|---|
IList<T> | A IList collection that contains the persistent objects of the specified type. Only objects that satisfy the specified criteria will be retrieved to this collection. |
Remarks
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;
// ...
public class AssignTasksController : ObjectViewController<ListView, MainDemo.Module.BusinessObjects.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;
CriteriaOperator personCriteria = CriteriaOperator.Parse("Contains([LastName], ?)", personParamValue);
Person person = (Person)objectSpace.FindObject(typeof(Person), personCriteria);
if(person != null) {
CriteriaOperator taskCriteria = CriteriaOperator.Parse("[Status] = ?", TaskStatus.Deferred);
IList<MainDemo.Module.BusinessObjects.DemoTask> tasks =
objectSpace.GetObjects<MainDemo.Module.BusinessObjects.DemoTask>(taskCriteria);
foreach(MainDemo.Module.BusinessObjects.DemoTask task in tasks) {
task.AssignedTo = person;
}
}
}
}
When implementing the IObjectSpace interface in the BaseObjectSpace class’s descendant, don’t implement the GetObjects<T> method. It’s implemented in the BaseObjectSpace class. To get the specified objects, the BaseObjectSpace.GetObjects<T>(CriteriaOperator criteria) method invokes a generic protected virtual CreateCollection method that does nothing and returns null. So, you should override the generic CreateCollection method in your descendant.
Related GitHub Examples
The following code snippets (auto-collected from DevExpress Examples) contain references to the GetObjects<T>(CriteriaOperator) 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.