У меня есть класс (control), реализующий ICustomTypeDescriptor, который используется как во время разработки, так и во время выполнения PropertyGrid для настройки.Мне нужно предоставить различные свойства во время разработки (стандартные свойства элементов управления, такие как width
, height
и т. Д.) И во время выполнения, когда 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 #?Может быть, лучше использовать условную компиляцию?