Be notified of new PropertyGrid resources in your RSS reader Subscribe to this list

Mini Tips

Expandable property:
targetting an instance but some of its properties look like they have no child values? The solution relies on the decoration of your properties by a specific attribute.


Sponsor of the DailyGrind at Larkware

Hide some members of an enumeration:
yes this is feasible with .Net 2.0. You just need to use the BrowsableAttribute class on the fields you want to hide.


This site monitors CodeProject articles

Localize the description:
It takes deriving the DescriptionAttribute class and supply your own DescriptionValue property. This is explained by Microsoft in MSDN.


Turn a string into a password:
Just apply a PasswordPropertyText attribute to your string property and voila!

Completeness and Relevancy

Did you see a broken link? Would you like to add a new resource? Please notify us.


Smart PropertyGrid for MFC is now distributed free for personal and commercial use.


- StackOverflow
- HanselMinutes
- Joel On Software
- WorkHappy
- LifeHacker


The PropertyGrid control in the .Net environment is one of the controls the most difficult to grasp. Resources are spread all over the web and you will be lucky if you find a solution to your particular problem involving very precise keywords. This web site wants to gather all known and less known resources about this powerful control and on various subjects. Tags will help classify this amount of informations to help you search what you need. You are very welcome to consult this list, come back to see the last additions (rss feed also available) and submit the resources you found or wrote yourself.

This site also features Smart PropertyGrid.Net, a commercial package that proposes the most powerful alternative to the Microsoft solution. You may want to explore its features and see if it is more suitable for your end-users in terms of customization, flexibility, usability and accessibility.

Bending the .NET PropertyGrid to Your Will

Tony presents on CodeProject one of the most famous articles ever written about the PropertyGrid. His goal was to make the control more usable by introducing the notion of dynamic content. The class PropertyBag, the facade of his framework, handles beautifully this dynamic aspect by hiding all the complexity of PropertyDescriptors. Read more...

.NET matters, ICustomTypeDescriptor, Part 1

Based on a practical example of an autogenerated class that exposes no properties, only public fields, this article explains how the PropertyGrid can be fooled into thinking that each field is actually a property by deriving from ICustomTypeDescriptor and publishing a custom set of properties (PropertyDescriptors). Read more...

.NET matters, ICustomTypeDescriptor, Part 2

This article is an extension of the same one labelled "part 1" but this time focuses on what has been added in the .Net framework 2.0. The class TypeDescriptionProvider is introduced, which allows not to modify an existing target class with the ICustomTypeDescriptor interface code by registering itself as a provider for the target class. Read more...

Customized display of collection data in a PropertyGrid

This CodeProject article, like several other resources, teaches the use of custom type descriptors and type converters with a very practical example. The goal is to display as humanly as possible a collection of employees. Read more...

Globalized property grid

Based on a very practical example where the author's goal is to localize, thanks to the use of resources, the property labels and descriptions, you will again learn a lot about the ICustomTypeDescriptor interface. Read more...

Dynamic content for the combobox

This article shows how to setup a combobox based on a mapping of pairs. While the article is written for Smart PropertyGrid, it is very useful to get the same result in the Microsoft PropertyGrid. You will simply replace the last section by another technique, like requesting the integers and displayed strings through the target instance accessible with the ITypeDescriptorContext parameter of the TypeConverter's methods. Read more...