Например, у вас есть объект со свойством типа string и вы хотите чтобы через PropertyGrid можно было бы выбирать из выпадающего списка новое значение для этого свойства. Выглядит это приблизительно так:
using System;
using System.ComponentModel;
public class MyClass
{
[TypeConverter(typeof(EnumConverter))]
public string stringProperty {get; set;}
public MyClass()
{
stringProperty = EnumConverter.ALT1;
}
class EnumConverter : TypeConverter
{
public const string ALT1 = "Альтернатива1";
public const string ALT2 = "Альтернатива2";
public const string ALT3 = "Альтернатива3";
public override bool GetStandardValuesSupported(ITypeDescriptorContext context) {return true; }
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) {return true; }
public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
return new StandardValuesCollection(new[] {ALT1, ALT2, ALT3 });
}
}
}
потом что-то типа:
propertyGrid.SelectedObject = new MyClass();
чтобы посмотреть что получилось
P.S. Код не запускал. Поэтому могут быть мелкие помарочки. Пишите в комментарий, если что не получается или не понятно.
P.P.S. Так то PropertyGrid мощнейший компонент. Может очень и очень многое. Но не больше =).