wpf-devexpress-property-grid

Build WPF property editors with the DevExpress PropertyGridControl bound to arbitrary CLR objects.

Updated Dec 11, 2025
One-click install
npx skills add https://github.com/AleksaRistic216/dotnet-playground --skill wpf-devexpress-property-grid-aleksaristic216
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: wpf-devexpress-property-grid
Source: https://github.com/AleksaRistic216/dotnet-playground/tree/main/.github/skills/wpf/wpf-devexpress-property-grid
Command: npx skills add https://github.com/AleksaRistic216/dotnet-playground --skill wpf-devexpress-property-grid-aleksaristic216

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires DevExpress.Wpf.PropertyGrid, and includes references (resource) components.

What problem does it solve? Building runtime property inspectors and settings dialogs in WPF normally requires hand-writing an editor per property type. This Skill guides you through the DevExpress PropertyGridControl so any CLR object can be displayed and edited automatically, with control over which properties show, how collections are edited, and how nested objects expand. ## Core Features & Use Cases - Automatic property editing: Bind SelectedObject (or SelectedObjects for multi-selection) to any POCO or INotifyPropertyChanged view model and get a type-appropriate editor per property. - Property, collection, and category definitions: Use PropertyDefinition to pick properties and assign custom editors, CollectionDefinition for inline add/remove of list items with NewItemInitializer defaults, and CategoryDefinition with [Category] attributes for flat, grouped, or tabbed layouts. - Nested object expandability: Control expansion of complex properties via ExpandableObjectConverter or AllowExpanding modes (Default, Force, ForceIfNoTypeConverter, Never). - Use Case: Build a diagram designer's property panel where selecting a shape binds it to the grid, groups its properties under tabbed categories, and lets users edit a collection of child items inline. ## Quick Start Ask the AI to create a WPF window with a DevExpress PropertyGridControl bound to a Customer object showing only FirstName, LastName, and BirthDate properties.

Frequently Asked Questions about wpf-devexpress-property-grid

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

FAQPage Schema
How do I bind a DevExpress PropertyGridControl to an object in WPF?

Set the SelectedObject property to any CLR object, typically via a binding like SelectedObject="{Binding}" with the object as DataContext. By default ShowProperties="All" renders every public property with a type-appropriate editor.

How do I show only specific properties in the WPF PropertyGrid?

Set ShowProperties="WithPropertyDefinitions" and declare PropertyDefinition elements with Path matching each property name, for example Path="FirstName". Paths are case-sensitive and must match the CLR property names exactly.

How do I edit a collection property inline in PropertyGridControl?

Add a CollectionDefinition with Path pointing to the List or ObservableCollection property. The grid renders built-in Add and Remove buttons, and you can supply a NewItemInitializer such as XamlInitializer to provide default values for new items.

Why is my nested object not expandable in the DevExpress property grid?

With AllowExpanding="Default", a complex property only expands when it has a TypeConverter such as ExpandableObjectConverter. Add [TypeConverter(typeof(ExpandableObjectConverter))] to the property or set AllowExpanding="Force" on the grid.

Does DevExpress WPF PropertyGrid support .NET 8 and .NET Framework?

Yes, it supports .NET 6, 7, 8 and later targeting Windows, plus .NET Framework 4.6.2 and above. Install the DevExpress.Wpf.PropertyGrid NuGet package, which requires a valid DevExpress license and a Windows-targeted WPF project.

Why do property changes not appear in the PropertyGridControl at runtime?

The bound object must implement INotifyPropertyChanged for the grid to refresh automatically. If it does not, call propertyGrid.DataController.ResetCache() after external mutations to force the grid to re-read values.