Skip to main content
.NET Standard 2.0+

SingleChoiceAction Class

Represents a Single Choice Action.

Namespace: DevExpress.ExpressApp.Actions

Assembly: DevExpress.ExpressApp.v22.1.dll

Declaration

[ToolboxTabName("DX.22.1: XAF Actions")]
public class SingleChoiceAction :
    ChoiceActionBase

Remarks

The SingleChoiceAction class inherits both the basic functionality of Actions from the ActionBase class, and the functionality of Choice Actions - from the ChoiceActionBase class.

Single Choice Actions are used to execute custom code when a user selects an item from the ChoiceActionBase.Items collection. You can populate this collection at design time via the Properties window. Select the Items property and click the ellipsis button provided for it. In the invoked ChoiceActionItems Collection Editor, add items and specify their settings.

Each item within the ChoiceActionBase.Items collection can contain child items as well. So, you can form a tree of items for a Single Choice Action.

action option selection in list view

You can specify the type of a Single Choice Action’s items: they can represent either modes or operations. To do this, use the SingleChoiceAction.ItemType property.

Add a Single Choice Action

You can add a Single Choice Action to a Controller inthe following ways:

Note

CodeRush allows you to add Actions and Controllers with a few keystrokes. To learn about the Code Templates for XAF, refer to the following help topic: XAF Templates.

Run Custom Code in Single Choice Actions

To provide custom code to be executed when users select a single item within the Items collection, handle the SingleChoiceAction.Execute event. To access the selected item, use the handler’s SingleChoiceActionExecuteEventArgs.SelectedChoiceActionItem parameter.

Set the IModelActionWeb.IsPostBackRequired property to true to send a postback when a user executes an Action in an ASP.NET Web Forms application. For example, for Actions that download files or change the application’s language.

Example

The code sample below demonstrates how to implement a single choice action that allows users to filter a current list view.

The single choice action’s items (of the Department type) are retrieved from a data source. When a single choice action item is selected, the current list view displays employees assigned to the selected department.

using DevExpress.Data.Filtering;
using DevExpress.ExpressApp;
using DevExpress.ExpressApp.Actions;
using MainDemo.Module.BusinessObjects;

namespace MainDemo.Module {
    public class DepartmentFilterController : ObjectViewController<ListView, Employee> {
        SingleChoiceAction departmentFilterAction;
        public DepartmentFilterController() {
            departmentFilterAction = new SingleChoiceAction(this, "DepartmentFilter", "Filters");
            departmentFilterAction.Caption = "Department";
            departmentFilterAction.Execute += departmentFilterAction;
        }
        protected override void OnActivated() {
            base.OnActivated();
            departmentFilterAction.Items.Clear();
            foreach (Department department in ObjectSpace.GetObjects<Department>()) {
                departmentFilterAction.Items.Add(new ChoiceActionItem(department.Title, department.Oid));
            }
        }
        void departmentFilterAction_Execute(object sender, SingleChoiceActionExecuteEventArgs e) {
            View.CollectionSource.Criteria["DepartmentFilter"] = new BinaryOperator("Department.Oid", e.SelectedChoiceActionItem.Data);
        }
    }
}

The following code snippets (auto-collected from DevExpress Examples) contain references to the SingleChoiceAction class.

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.

Implements

See Also