У меня есть настраиваемый элемент управления со свойством Items
. Я применил EditorAttribute)
с UITypeEditor
типа CollectionEditor
.
Тип коллекции:
[Serializable]
[Editor(typeof(CollectionEditor), typeof(UITypeEditor))]
public class ListItemsCollection : CollectionBase
{
// methods
}
Объявление свойства в элементе управления:
private new ListItemsCollection _Items;
[Editor(typeof(CollectionEditor), typeof(UITypeEditor))]
public new ListItemsCollection Items
{
get
{
return _Items;
}
set
{
_Items = value;
// do other UI changes
}
}
Проблема:
Когда я перетаскиваю этот элемент управления на поверхность конструктора, я могу добавлять элементы в свойство Items с помощью PropertyGrid
. Но когда я нажимаю кнопку Ok
редактора CollectionEditor
, средство установки свойства Items
не вызывается.
AFAIK, когда значение возвращается из метода EditValue
класса UITypeEditor
, предполагается, что будет вызван блок установки свойства.
Это сводит меня с ума. Я даже попытался добавить Event
в ListItemsCollection
, чтобы при добавлении элементов я мог все, что захочу, с пользовательским интерфейсом элемента управления.
Это не должно быть сложно. Что я делаю не так?