4.6 KiB
PropertyGrid Examples
This directory contains example applications demonstrating the Avalonia PropertyGrid control.
Available Examples
1. QuickStartExample
Difficulty: Beginner
Focus: Basic PropertyGrid usage
A simple example showing fundamental PropertyGrid features:
- Basic property types (string, int, decimal, bool, enum)
- Property categories
- Display names and descriptions
- Read-only properties
- DateTime properties
Perfect for getting started with PropertyGrid.
To run:
dotnet run --project Examples/QuickStartExample/QuickStartExample.csproj
2. AdvancedExample ⭐ NEW
Difficulty: Advanced
Focus: Complex scenarios and enterprise features
A comprehensive example demonstrating advanced PropertyGrid capabilities:
- Nested Objects - DatabaseSettings and NetworkSettings
- Data Validation - Required, Range, StringLength attributes
- INotifyPropertyChanged - Real-time property updates
- Computed Properties - Dynamic read-only properties
- 7 Categories - Organized configuration sections
- 25+ Properties - Complex data model
- Multiple Data Types - TimeSpan, Guid, Lists, and more
- Enum Descriptions - User-friendly enum values
- Password Fields - Secure property display
Ideal for understanding production-level usage.
To run:
dotnet run --project Examples/AdvancedExample/AdvancedExample.csproj
Feature Comparison
| Feature | QuickStartExample | AdvancedExample |
|---|---|---|
| Properties | ~10 | 25+ |
| Categories | 5 | 7 |
| Nested Objects | ❌ | ✅ (2 levels) |
| Validation | ❌ | ✅ (Required, Range, Length) |
| Change Notifications | ❌ | ✅ (INotifyPropertyChanged) |
| Computed Properties | ❌ | ✅ |
| Password Fields | ❌ | ✅ |
| Collections | ❌ | ✅ (List) |
| Metadata | ❌ | ✅ (Guid, DateTime tracking) |
| Data Types | Basic | Extended (TimeSpan, Guid, etc.) |
| Read-Only Properties | ✅ (1) | ✅ (4) |
| Descriptions | ✅ | ✅ (Detailed) |
Building All Examples
Build all examples at once:
dotnet build
Or build individually:
dotnet build Examples/QuickStartExample/QuickStartExample.csproj
dotnet build Examples/AdvancedExample/AdvancedExample.csproj
Learning Path
-
Start with QuickStartExample - Learn the basics
- Property binding
- Categories and descriptions
- Basic data types
-
Move to AdvancedExample - Master advanced features
- Nested objects
- Validation
- Change notifications
- Complex data models
Common Use Cases
QuickStartExample is great for:
- Learning PropertyGrid basics
- Simple configuration editors
- Prototyping
- Single-level property editing
AdvancedExample is great for:
- Enterprise applications
- Complex configuration management
- Settings dialogs with validation
- Hierarchical data editing
- Production-ready implementations
Key PropertyGrid Features
Both examples demonstrate PropertyGrid's core capabilities:
🎨 Visual Features
- Category grouping with collapsible sections
- Property descriptions
- Search/filter functionality
- Modern Fluent UI design
🔧 Data Binding
- Two-way binding
- Multiple data types support
- Enum support with descriptions
- DateTime pickers
📋 Metadata Support
[Display]- Names, descriptions, ordering[Category]- Logical grouping[ReadOnly]- Immutable properties[Required],[Range],[StringLength]- Validation[PasswordPropertyText]- Secure input[EditorBrowsable]- Advanced property grouping
🔄 Dynamic Features
- INotifyPropertyChanged support
- Real-time updates
- Computed properties
- Conditional property display
Troubleshooting
Build Issues
If you encounter build errors, ensure:
- You're targeting .NET 10
- Avalonia packages are version 12.1.0 or compatible
- The solution includes the PropertyGrid project reference
Runtime Issues
- Ensure
x:DataTypeis set on the Window element for compiled bindings - Verify all namespaces are correctly imported
- Check that model classes are public
Contributing
Want to add more examples? Consider these ideas:
- Multi-object editing example
- Custom property editor example
- Dynamic property generation example
- Settings persistence example
- Theme customization example
Support
For issues or questions about PropertyGrid:
- Check the examples documentation
- Review the PropertyGrid source code
- Open an issue in the repository
Happy coding with PropertyGrid! 🚀