xaf-controllers

Implement DevExpress XAF Controller and Action patterns for UI workflows.

6|2|Updated Mar 3, 2026
One-click install
npx skills add https://github.com/kashiash/xaf-skills --skill xaf-controllers
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: xaf-controllers
Source: https://github.com/kashiash/xaf-skills/tree/main/xaf-controllers
Command: npx skills add https://github.com/kashiash/xaf-skills --skill xaf-controllers

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Provides comprehensive patterns for creating XAF Controllers and Actions across ViewController variants, lifecycle, actions, and dialogs to help developers implement robust, reusable UI logic in DevExpress XAF apps.

Core Features & Use Cases

  • Controller types: ViewController, ViewController<TView>, ObjectViewController<TView, TObject>, WindowController, ApplicationController.
  • Controller lifecycle: OnActivated, OnDeactivated, OnViewControlsCreated, OnViewShown, with proper subscription/unsubscription patterns.
  • Action types: SimpleAction, ParametrizedAction, SingleChoiceAction, PopupWindowShowAction, and their usage patterns.
  • Dialog handling: DialogController setup (SaveOnAccept, CanCloseWindow, Accepting/Cancelling) and usage in popups.
  • Chaining popups: Sequential popups and manual show scenarios to compose complex workflows.
  • View/update patterns: ObjectChanged, CurrentObjectChanged, and view refresh patterns to keep UI in sync.
  • Patterns for Frame/NestedFrame: Accessing frames and nested frames for Master-Detail scenarios.
  • Activation/Enabled states: Configuring Active/Enabled/Visibility of actions based on view state.
  • Best practices: Memory leaks prevention and disposal guidance from xaf-memory-leaks reference.

Quick Start

Install and integrate the xaf-controllers skill into your XAF project to bootstrap controllers and actions across platforms.

Frequently Asked Questions about xaf-controllers

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I handle XAF Controller lifecycle events properly in Blazor and WinForms?

XAF Controller lifecycle events like OnActivated, OnDeactivated, and OnViewControlsCreated require proper subscription and unsubscription patterns to manage UI logic robustly across Blazor and WinForms platforms. Use specific ViewController variants to target view types correctly.

What is the best way to show a popup dialog using DevExpress XAF Actions?

The best way to show a popup dialog in DevExpress XAF is using PopupWindowShowAction combined with DialogController setup. Configure SaveOnAccept, CanCloseWindow, and Accepting/Cancelling events to manage dialog workflows and chain sequential popups for complex scenarios.

How do I prevent memory leaks when creating XAF Controllers and Actions?

Preventing memory leaks in XAF Controllers requires following proper disposal guidance and best practices for event handling. Ensure correct unsubscription from ObjectChanged, CurrentObjectChanged, and view refresh events during OnDeactivated to avoid retaining references.

Can I configure Action activation and enabled states based on view state in XAF?

Yes, you can configure the Active, Enabled, and Visibility states of XAF Actions based on the current view state. This involves setting Active and Enabled properties within Controller logic to control Action availability dynamically across different XAF UI contexts.

How do I access nested frames for Master-Detail scenarios in XAF?

Accessing nested frames in XAF for Master-Detail scenarios involves using specific Frame and NestedFrame view patterns. These patterns allow Controllers to interact with child views and synchronize ObjectSpace data updates across the parent and detail UI components.

Do I need specific knowledge of ObjectSpace management before building XAF Controllers?

Yes, you need knowledge of DevExpress XAF patterns, ObjectSpace management, and view refresh strategies before building Controllers. Understanding these best practices is required to implement robust, reusable UI logic across web API, WinForms, and Blazor contexts.