Skip to main content
.NET 6.0+

SingleChoiceAction.Execute Event

Occurs when an end-user clicks the required item located in the Single Choice Action’s item list.

Namespace: DevExpress.ExpressApp.Actions

Assembly: DevExpress.ExpressApp.v24.1.dll

NuGet Package: DevExpress.ExpressApp

Declaration

public event SingleChoiceActionExecuteEventHandler Execute

Event Data

The Execute event's data class is SingleChoiceActionExecuteEventArgs. The following properties provide information specific to this event:

Property Description
Action Provides access to the Action being executed. Inherited from ActionBaseEventArgs.
CurrentObject Provides access to the current object represented by the currently displayed View. Inherited from SimpleActionExecuteEventArgs.
SelectedChoiceActionItem Provides access to a Single Choice Action’s selected item.
SelectedObjects Provides access to the objects selected in the currently invoked View. Inherited from SimpleActionExecuteEventArgs.
ShowViewParameters Provides access to the ShowViewParameters object, specifying a View, displayed after executing the current Action. Inherited from ActionBaseEventArgs.

Remarks

Handle this event to execute custom code when an end-user clicks an item located in the current Single Choice Action’s item list (see ChoiceActionBase.Items). To access this item, use the handler’s SingleChoiceActionExecuteEventArgs.SelectedChoiceActionItem parameter. If you need an additional View to be displayed after executing the Action, use the ActionBaseEventArgs.ShowViewParameters parameter to specify this View and its settings.

using DevExpress.ExpressApp;
using DevExpress.ExpressApp.Actions;

namespace YourSolution.Module.Controllers;

public class CustomBlazorController : ViewController {
    public CustomBlazorController() {
        var mySingleChoiceAction1 = new SingleChoiceAction(this, "MySingleChoiceAction", null);
        mySingleChoiceAction1.Items.Add(new ChoiceActionItem("Caption1", "Test1"));
        mySingleChoiceAction1.Items.Add(new ChoiceActionItem("Caption2", "Test2"));
        mySingleChoiceAction1.Execute += MySingleChoiceAction1_Execute;
    }

    private void MySingleChoiceAction1_Execute(object sender, SingleChoiceActionExecuteEventArgs e) {
        var selectedValue = e.SelectedChoiceActionItem.Data.ToString();
        switch(selectedValue) {
            case "Test1":
                //your code
                break;
            case "Test2":
                //your code
                break;
        }
    }
}

For additional information, refer to the How to: Access Objects Selected in the Current View help topic.

Execute Actions Programmatically

We do not recommend that you use the DoExecute and other methods to execute Actions because such methods can contain UI-specific code. You can refactor your Action’s event handlers and extract the required code into separate methods. Call these separate methods directly without triggering UI-related Action code.

Programmatic execution of custom and built-in Actions is acceptable in rare advanced scenarios, for example, if you:

  • Create a custom Action Container and call the DoExecute method inside the Action control. In this context, you have complete control over your custom code and can execute any action. Remember to trigger life-cycle events for your actions (such as Execute).
  • Add new ways to invoke Actions from the UI (for example, support keyboard or voice control).
  • Reuse a built-in Action in a specific context where you would need to write a lot of code to re-implement the Action’s internal business logic.

For more information on how to implement such complex requirements, refer to the following materials:

See Also