У меня есть класс (элемент управления), реализующий ICustomTypeDescriptor, который используется PropertyGrid как во время разработки, так и во время выполнения для настройки. Мне нужно предоставить разные свойства во время разработки (свойства стандартных элементов управления, такие как ширина
, высота
и так далее) и во время выполнения, когда PropertyGrid используется в моей программе для изменения других свойств этого элемента управления.
Мой код выглядит примерно так:
class MyControl : UserControl, ICustomTypeDescriptor
{
//Some code..
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
return GetProperties();
}
public PropertyDescriptorCollection GetProperties()
{
//I need to do something like this:
if (designTime)
{ //Expose standart controls properties
return TypeDescriptor.GetProperties(this, true);
}
else
{
//Forming a custom property descriptor collection
PropertyDescriptorCollection pdc = new PropertyDescriptorCollection(null);
//Some code..
return pdc;
}
}
}
Есть ли аналог флага времени разработки в C #? Может быть, лучше использовать условную компиляцию?