$npx -y skills add DevExpress/agent-skills --skill devexpress-wpf-data-editorsBuild WPF applications with the DevExpress Data Editors library — text, numeric, date/time, lookup, combo/listbox, image, color, visualization and utility editors. Use when adding TextEdit, ButtonEdit, ComboBoxEdit, DateEdit, SpinEdit, LookUpEdit, MemoEdit, PasswordBoxEdit, ListB
| 1 | # DevExpress WPF Data Editors |
| 2 | |
| 3 | The DevExpress Data Editors library is a comprehensive set of input controls for WPF — text editors, numeric editors, date/time pickers, lookups, combos, list boxes, image/color editors, visualization editors, and simple buttons. All editors share a common base type (`DevExpress.Xpf.Editors.BaseEdit`) with a single `EditValue` property — the value the user is editing — plus a uniform API for masking, validation, formatting, and in-place use inside `GridControl`, `PropertyGrid`, `Bar` items, and similar containers. |
| 4 | |
| 5 | > **Two control families**: editors that **inherit from `BaseEdit`** (have `EditValue`, support masks, validation, in-place mode) vs **simple controls** that do not (`SimpleButton`, `DropDownButton`, `SplitButton`, `FlyoutControl`, `RangeControl`, `Calculator`, `DateNavigator`, `DateRangeControl`, `TimePicker`). The two families are documented separately — see Navigation Guide. |
| 6 | |
| 7 | ## When to Use This Skill |
| 8 | |
| 9 | Use this skill when you need to: |
| 10 | |
| 11 | - Add a text input with masked input, validation, or formatting |
| 12 | - Provide a combobox, listbox, or lookup with single or multiple selection |
| 13 | - Edit numeric, currency, or percentage values with constrained input |
| 14 | - Pick dates, times, ranges, or display a calendar |
| 15 | - Browse for a file path, edit a password, or accept a long memo |
| 16 | - Show visualization editors: progress bars, sparklines, ratings, trackbars |
| 17 | - Show image or color pickers (inline or popup) |
| 18 | - Embed a DevExpress editor as an in-place editor inside `GridControl`, `PropertyGrid`, `Bar`, etc. |
| 19 | - Add buttons inside a `ButtonEdit` (or its descendants) for clear / apply / browse actions |
| 20 | - Customize masks (numeric, date-time, simple, regex, custom) |
| 21 | |
| 22 | ## Prerequisites & Installation |
| 23 | |
| 24 | ### NuGet Packages |
| 25 | |
| 26 | | Package | Purpose | |
| 27 | |---------|---------| |
| 28 | | `DevExpress.Wpf.Core` | Simple controls (`SimpleButton`, `DropDownButton`, `SplitButton`), shared infrastructure | |
| 29 | | `DevExpress.Wpf.Grid.Core` | Required when you use `LookUpEdit` / `SearchLookUpEdit` / token lookups (these classes live in `DevExpress.Xpf.Grid.LookUp`) | |
| 30 | |
| 31 | The Data Editors themselves (`TextEdit`, `DateEdit`, etc.) are part of `DevExpress.Wpf.Core`. There is no separate "Editors" NuGet — installing `DevExpress.Wpf.Core` brings them in. |
| 32 | |
| 33 | ### .NET 8+ |
| 34 | |
| 35 | ```bash |
| 36 | dotnet add package DevExpress.Wpf.Core |
| 37 | ``` |
| 38 | |
| 39 | For lookups: |
| 40 | |
| 41 | ```bash |
| 42 | dotnet add package DevExpress.Wpf.Grid.Core |
| 43 | ``` |
| 44 | |
| 45 | Add `<TargetFramework>net8.0-windows</TargetFramework>` and `<UseWPF>true</UseWPF>` to `.csproj`. |
| 46 | |
| 47 | ### .NET Framework (4.6.2+) |
| 48 | |
| 49 | Either use the same NuGet packages, or reference the assemblies installed by the Unified Component Installer (`DevExpress.Xpf.Core.v<XX.X>.dll`). |
| 50 | |
| 51 | **Important**: All DevExpress packages in a project must share the same version. A valid DevExpress license is required. |
| 52 | |
| 53 | ## Before You Start — Ask the Developer |
| 54 | |
| 55 | If the host agent has a structured question-asking tool available, use it to ask these questions one at a time with clear options — for example, Claude Code's `AskUserQuestion` tool or GitHub Copilot's `askQuestions` tool. If no such tool is available, ask the questions directly in the chat response before generating code. |
| 56 | |
| 57 | Before generating code, confirm: |
| 58 | |
| 59 | 1. **Target framework**: .NET 8+ or .NET Framework 4.x? |
| 60 | 2. **Standalone or in-place**: Will the editor sit on a form, or be embedded inside `GridControl` / `PropertyGrid` (which uses the `*EditSettings` variant)? |
| 61 | 3. **Editor type**: Which editor fits the data? See [editor-varieties.md](references/editor-varieties.md) for the full inventory. |
| 62 | 4. **Operation mode**: For editors that support `StyleSettings` (ComboBoxEdit, LookUpEdit, ListBoxEdit, DateEdit, TrackBarEdit, Progr |