[Expand]General Information
[Expand]WinForms Controls
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Expand]WPF Controls
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Office File API
[Expand]Report and Dashboard Server
[Collapse]eXpressApp Framework
 [Collapse]Getting Started
  [Expand]Basic Tutorial (SimpleProjectManager Application)
  [Collapse]Comprehensive Tutorial (MainDemo Application)
   [Expand]Business Model Design
   [Collapse]Extend Functionality
     Add a Simple Action
     Add a Parametrized Action
     Add an Action that Displays a Pop-up Window
     Add an Action with Option Selection
     Add a Simple Action using an Attribute
     Access Editor Settings
     Access Grid Control Properties
   [Expand]UI Customization
   [Expand]Extra Modules
   [Expand]Security System
 [Expand]Design-Time Features
 [Expand]Task-Based Help
  Frequently Asked Questions (FAQ)
 [Expand]API Reference
[Expand]eXpress Persistent Objects
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation
View this topic on docs.devexpress.com (Learn more)

Extend Functionality

In this tutorial section, you will learn how to add custom features to your application. For this purpose, you should familiarize yourself with the following basic concepts of the eXpressApp Framework.

  • Action

    Visually, Action is a toolbar item or another control that performs the associated code when an end-user manipulates it. XAF provides several predefined Action types. You can choose the appropriate type, depending on how you want your Action to be represented within the UI. Regardless of the chosen type, all Actions expose the Execute event, whose handler is executed when end-users manipulate the corresponding element. For more details, refer to the Actions topic.

  • Controller

    Controllers are classes inherited from the Controller's descendants: ViewController (including its generic versions: ViewController<ViewType> and ObjectViewController<ViewType, ObjectType>) or WindowController. They are used to implement business logic in your application. This logic can be executed either automatically (e.g, when a View is activated) or triggered when an Action declared within the Controller is executed by a user. Controllers implemented within modules are collected automatically by XAF using reflection. That is why Controller classes should be public. When a Window is created, required Controllers are activated. This results in activating (making visible) their Actions. For more details, refer to the Controllers topic.

Controllers and Actions are instruments that provide custom features in an XAF application. In this tutorial section, you will learn how to add Actions of different types, implement Controllers without Actions, and modify the behavior of existing Controllers and Actions, etc. It is recommended that you complete the lessons listed below, in order.

Is this topic helpful?​​​​​​​