Add a Simple Action using an Attribute
- 2 minutes to read
This lesson explains how to add a Simple Action using an attribute. For this purpose, you will add a new method to the DemoTask class, and decorate it with the ActionAttribute attribute.
Note
Before you proceed, take a moment to review the following lessons:
- Set a Many-to-Many Relationship (XPO/EF core)
- Add a Simple Action
Step-by-Step Instructions
Add the Postpone method to the DemoTask class as shown below.
using System; [DefaultClassOptions] [ModelDefault("Caption", "Task")] public class DemoTask : Task { //... [Action(ToolTip = "Postpone the task to the next day")] public void Postpone() { if(DueDate == DateTime.MinValue) { DueDate = DateTime.Now; } DueDate = DueDate + TimeSpan.FromDays(1); } }
Display the “Due Date” column in Task List View. Open the MySolution.Module | ModelDesignedDiffs.xafml file. In the Model Designer:
- Go to Views | MySolution.Module.BusinessObjects | DemoTask_ListView | Columns.
- Right-click the grid header and invoke the column chooser.
- Drag the “Due Date” column to the View and save the ModelDesignedDiffs.xafml file.
Run the application. Select the Task item in the navigation control.
Select one or more Task objects in the Task List View. The Postpone Action button appears. Click this button. The DueDate property of the selected objects is modified.
Detailed Explanation
Action Attribute
The Postpone method adds one day to the Task.DueDate property. After you decorate this method with the ActionAttribute attribute, the Postpone button will be displayed in the UI, and the Postpone method will be called when a user clicks this button.
Tip
You can use the Action attribute to implement an action that asks a user to specify parameters in a popup dialog (for example, the number of days to postpone a Task ). Refer to the following topic to see an example: How to: Create an Action Using the Action Attribute.