Skip to main content
.NET 6.0+

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.v23.2.dll

NuGet Package: DevExpress.ExpressApp

Declaration

IList<T> GetObjects<T>(
    CriteriaOperator criteria
)

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.

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.

See Also