AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Devexpress Wpf Data Editors

skill-devexpress-agent-skills-devexpress-wpf-data-editors · by DevExpress

Build 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, ListBoxEdit, CheckEdit, ToggleSwitchEdit, BrowsePathEdit, ImageEdit, ColorEdit/PopupColorEdit, TrackBarEdit, ProgressBarEdit…

No reviews yet
0 installs
32 views
0.0% view→install

Install

$ agentstack add skill-devexpress-agent-skills-devexpress-wpf-data-editors

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-devexpress-agent-skills-devexpress-wpf-data-editors)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Devexpress Wpf Data Editors? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

DevExpress WPF Data Editors

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.

> 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.

When to Use This Skill

Use this skill when you need to:

  • Add a text input with masked input, validation, or formatting
  • Provide a combobox, listbox, or lookup with single or multiple selection
  • Edit numeric, currency, or percentage values with constrained input
  • Pick dates, times, ranges, or display a calendar
  • Browse for a file path, edit a password, or accept a long memo
  • Show visualization editors: progress bars, sparklines, ratings, trackbars
  • Show image or color pickers (inline or popup)
  • Embed a DevExpress editor as an in-place editor inside GridControl, PropertyGrid, Bar, etc.
  • Add buttons inside a ButtonEdit (or its descendants) for clear / apply / browse actions
  • Customize masks (numeric, date-time, simple, regex, custom)

Prerequisites & Installation

NuGet Packages

| Package | Purpose | |---------|---------| | DevExpress.Wpf.Core | Simple controls (SimpleButton, DropDownButton, SplitButton), shared infrastructure | | DevExpress.Wpf.Grid.Core | Required when you use LookUpEdit / SearchLookUpEdit / token lookups (these classes live in DevExpress.Xpf.Grid.LookUp) |

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.

.NET (6/7/8+)

dotnet add package DevExpress.Wpf.Core

For lookups:

dotnet add package DevExpress.Wpf.Grid.Core

Add net8.0-windows and true to .csproj.

.NET Framework (4.6.2+)

Either use the same NuGet packages, or reference the assemblies installed by the Unified Component Installer (DevExpress.Xpf.Core.v.dll).

Important: All DevExpress packages in a project must share the same version. A valid DevExpress license is required.

Before You Start — Ask the Developer

Before generating code, confirm:

  1. Target framework: .NET 8+, .NET 6/7, or .NET Framework 4.x?
  2. Standalone or in-place: Will the editor sit on a form, or be embedded inside GridControl / PropertyGrid (which uses the *EditSettings variant)?
  3. Editor type: Which editor fits the data? See [editor-varieties.md](references/editor-varieties.md) for the full inventory.
  4. Operation mode: For editors that support StyleSettings (ComboBoxEdit, LookUpEdit, ListBoxEdit, DateEdit, TrackBarEdit, ProgressBarEdit, SparklineEdit) — which sub-mode? (e.g., Checked vs Token vs Radio ComboBox.)
  5. Masking: Does the input need a mask (Numeric, DateTime, Simple, RegEx, etc.)? See [masks.md](references/masks.md).
  6. Validation: Inline validation via Validate event, IDataErrorInfo, or DataAnnotations?

> Rule: If the developer's answer is ambiguous or missing, ask before generating code. Do not guess.

Component Overview

The library splits into two families:

Family 1: BaseEdit Descendants (Have EditValue)

All editors that inherit from DevExpress.Xpf.Editors.BaseEdit share:

  • EditValue — the value being edited. Bind this for two-way data binding.
  • StyleSettings — switches the editor's operation mode (e.g., regular vs checked vs token ComboBox). NOT related to WPF's Style property.
  • InvalidValueBehavior, AllowNullInput, DisplayFormatString — value handling
  • In-place version: an *EditSettings class (e.g., TextEditSettings, ComboBoxEditSettings) used inside grid columns, property-grid cells, etc.
  • Mask support: via MaskType, Mask, MaskUseAsDisplayFormat (most text editors)
  • Validation: Validate event, Validation.HasError, BaseEdit.HasValidationError

Family 2: Simple Controls (No EditValue)

Live in DevExpress.Xpf.Core and DevExpress.Xpf.Editors:

  • SimpleButton — themed button
  • DropDownButton, SplitButton — buttons with popups
  • Calculator — standalone calculator UI
  • FlyoutControl — modal/modeless popup overlay
  • RangeControl — interactive range slider with a visualization area
  • DateNavigator, DateRangeControl, TimePicker — standalone date/time pickers (the date/time editors like DateEdit are in Family 1)

These are documented in [simple-controls.md](references/simple-controls.md).

XAML Namespaces

xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
  • dxe: — most editors (TextEdit, ButtonEdit, ComboBoxEdit, DateEdit, etc.)
  • dxg:LookUpEdit and its style-settings variants (live in DevExpress.Xpf.Grid.LookUp)
  • dx:SimpleButton, DropDownButton, SplitButton, theme manager

Documentation & Navigation Guide

Getting Started

Refer to [references/getting-started.md](references/getting-started.md)

When you need to:

  • Set up a new .NET 6/7/8+ WPF project with Data Editors
  • Add the right NuGet packages
  • Place the first TextEdit / DateEdit / ComboBoxEdit on a window
  • Bind EditValue two-way to a ViewModel property

Editor Varieties — BaseEdit Descendants and Operation Modes

Refer to [references/editor-varieties.md](references/editor-varieties.md)

When you need to:

  • Pick the right editor for a data type (text, numeric, date, picker, list)
  • Understand which editors have EditValue (and bindable two-way)
  • Switch a ComboBoxEdit / ListBoxEdit / LookUpEdit between default, checked, radio, token, and search modes via StyleSettings
  • Switch DateEdit between calendar / month / picker modes
  • Switch TrackBarEdit / ProgressBarEdit / SparklineEdit between visualization styles

Simple Controls — Non-BaseEdit Controls

Refer to [references/simple-controls.md](references/simple-controls.md)

When you need to:

  • Add a themed button (SimpleButton), dropdown button, or split button
  • Show a standalone calendar (DateNavigator), date-range picker, or time picker
  • Embed a calculator UI
  • Use FlyoutControl for popup/notification overlays
  • Use RangeControl for interactive range selection with a visualization track

Masks

Refer to [references/masks.md](references/masks.md)

When you need to:

  • Restrict input to numeric, currency, or percentage values
  • Enforce a date/time format with caret navigation
  • Match a fixed pattern like a phone number, zip code, or SSN (Simple masks)
  • Apply a regex pattern with autocomplete
  • Implement a custom mask via CustomMask event
  • Save mask literals into EditValue, or use mask as display format

Buttons in ButtonEdit Descendants

Refer to [references/buttons.md](references/buttons.md)

When you need to:

  • Add custom buttons inside ButtonEdit (or ComboBoxEdit, LookUpEdit, SpinEdit, BrowsePathEdit, PopupBaseEdit, PopupColorEdit, etc. — all ButtonEdit descendants)
  • Hide the default button, position buttons on the left, change glyphs
  • Bind button Command / Click to ViewModel actions
  • Use ButtonInfo.GlyphKind predefined glyphs, or a custom ContentTemplate

Quick Start Example

A registration form using common editors with two-way binding:


    
        
        

        
        

        
        

        
        

        
    
public class MainViewModel : ViewModelBase {
    public string Email { get; set; } = "";
    public string Password { get; set; } = "";
    public DateTime Birthday { get; set; } = DateTime.Today;
    public string Country { get; set; } = "";
    public ObservableCollection Countries { get; } =
        new() { "USA", "Canada", "UK", "Germany" };

    public ICommand RegisterCommand => new DelegateCommand(() => { /* ... */ });
}

> Two-way binding always uses EditValue, not Text or ValueEditValue is the canonical bindable property on BaseEdit.

Key Properties & API Surface

BaseEdit (Base for All Editors)

| Property | Type | Description | |---|---|---| | EditValue | object | The bound value. Always two-way bindable. Type depends on the editor. | | StyleSettings | BaseEditStyleSettings | Switches the editor's operation mode. Not the WPF Style property. | | IsReadOnly | bool | Read-only mode. | | AllowNullInput | bool | When true, Ctrl-D / Ctrl-0 clears the value. | | InvalidValueBehavior | InvalidValueBehavior | What happens when value is invalid: WaitForValidValue (default) or AllowLeaveEditor. | | DisplayFormatString | string | .NET format string used in display mode (when mask isn't used as display). | | Validate | event | Per-editor validation hook. | | HasValidationError | bool | True when the current input is invalid. |

TextEdit (Common Base for Most Text-Style Editors)

| Property | Type | Description | |---|---|---| | Text | string | The raw text representation. Prefer EditValue for binding. | | MaskType | MaskType | None, Numeric, DateTime, DateTimeAdvancingCaret, Simple, Regular, RegEx, Custom, plus date-only / time-only / timespan / date-time-offset. | | Mask | string | The mask string. Format depends on MaskType. | | MaskUseAsDisplayFormat | bool | Use the mask for display, not just edit. | | MaskShowPlaceHolders | bool | Show _ placeholders for empty positions (RegEx mode). | | MaskAutoComplete | AutoCompleteType | None, Strong, Optimistic, Default (RegEx mode). | | MaskSaveLiteral | bool | Include literal characters in EditValue (Simple/Regular mode). | | MaskCulture | CultureInfo | Override the culture used by the mask. |

ButtonEdit (Base for All Editors with Buttons)

| Property | Type | Description | |---|---|---| | Buttons | ButtonInfoCollection | Collection of ButtonInfo items shown inside the editor. | | AllowDefaultButton | bool | Show the editor's built-in default button (e.g., the dropdown arrow on ComboBoxEdit). |

ButtonInfo

| Property | Type | Description | |---|---|---| | Content | object | Button content (text, glyph image, etc.). | | ContentTemplate | DataTemplate | Custom rendering for the button. | | GlyphKind | GlyphKind? | Predefined glyph: Apply, Cancel, DropDown, Down, Up, Left, Right, Plus, Minus, Search, Refresh, Edit, Undo, Redo, First, Last, NextPage, PrevPage, Custom, etc. | | IsLeft | bool | Place the button on the left side of the editor (default: right). | | Visibility | Visibility | Standard WPF visibility. | | Command / CommandParameter | ICommand / object | MVVM command binding. | | Click | event | Click event handler. |

Common Patterns

Pattern 1: Bind EditValue Two-Way to a ViewModel

Mode=TwoWay is usually the default for EditValue on most editors, but specifying it explicitly is good practice. UpdateSourceTrigger=PropertyChanged writes the binding source on every keystroke; the default LostFocus is fine for forms but not for live validation.

Pattern 2: Operation Mode via StyleSettings

Switch ComboBoxEdit to a checked combo:


    
        
    

Switch LookUpEdit to search mode with token output:


    
        
    

Pattern 3: Masked Phone Input

Pattern 4: ButtonEdit with Clear and Apply Buttons


    
    

Pattern 5: In-Place Editor Inside GridControl


    
        
    

> Important: When embedding inside a grid, use the *EditSettings class (e.g., SpinEditSettings), NOT the editor class itself (SpinEdit). The settings class configures the inline editor; the grid creates the actual editor on demand.

Troubleshooting

| Symptom | Cause | Solution | |---|---|---| | EditValue doesn't update the ViewModel | Default UpdateSourceTrigger=LostFocus — value writes when focus leaves | Set UpdateSourceTrigger=PropertyChanged if you need keystroke-level updates. | | Mask is ignored when value is set via Text | Mask types Numeric / DateTime only apply when value is set via EditValue | Bind EditValue (not Text); the mask honors the value's type. | | dxe: prefix unresolved in XAML | Missing namespace declaration | Add xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors". | | LookUpEdit not found in dxe: namespace | LookUpEdit lives in the grid namespace, not editors | Use xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid" and `. | | Focus won't leave a masked editor | Default InvalidValueBehavior = WaitForValidValue — partial value blocks leaving | Set InvalidValueBehavior = AllowLeaveEditor if partial values are acceptable. | | Buttons collection ignores items | AllowDefaultButton="True" keeps the default button visible; only descendants of ButtonEdit have Buttons | Set AllowDefaultButton="False" to hide the default; verify the control inherits from ButtonEdit. | | Mask not applied in GridControl cell | Editor settings ignored — used TextEdit instead of TextEditSettings in EditSettings | Use *EditSettings (e.g., ) inside . | | EditValue is always string from a masked numeric editor | Bound to Text instead of EditValue, or EditValue type isn't numeric | Bind EditValue to a decimal / double / int property. | | Operation mode doesn't change anything | Set Style property by mistake; or assigned wrong settings type | Assign to StyleSettings (e.g., ); match the settings class to the editor (ComboBoxStyleSettings, CheckedComboBoxStyleSettings`, etc.). |

Constraints & Rules

CRITICAL — follow these rules in every interaction:

  1. Build verification: After any changes, run dotnet build and report errors before claiming success.
  2. Target framework: Editors are Windows-only. .csproj must target net{X}-windows with true.
  3. NuGet packages: DevExpress.Wpf.Core for most editors; add DevExpress.Wpf.Grid.Core for LookUpEdit family.
  4. Version consistency: All DevExpress packages share the same version (e.g., 26.1.x).
  5. XAML namespaces: dxe: for editors, dxg: for LookUpEdit, dx: for simple buttons and themes. Don't mix them up.
  6. Bind EditValue, not Text: EditValue is the canonical bindable property on BaseEdit. Text is a string view and bypasses type-aware mask handling.
  7. StyleSettings is NOT WPF Style: it's a DevExpress-specific operation-mode switch. Don't confuse the two.
  8. In-place uses *EditSettings: inside GridControl columns or PropertyGrid cells, embed ` (the settings class), not ` (the control class).
  9. License: DevExpress requires a valid license. Remind the developer on license-related errors.

Using DevExpress Documentation MCP

If the DxDocs MCP server is available, supplement this skill with:

  • Search: devexpress_docs_search(technology="WPF Editors", query="")
  • Fetch: devexpress_docs_get_content(url="")

When to use MCP vs. built-in references:

  • Built-in references: Editor inventory, operation modes, masks, button customization.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.