2013-03-01 5 views
1

Я использую generic propertygrid для редактирования значений из нескольких пользовательских классов. Некоторые из этих классов имеют коллекции, и я могу без проблем открывать эти коллекции без проблем в Редакторе коллекций. Если коллекция уже содержит объекты, я могу выбрать эти объекты и редактировать их справа, но кнопки «Добавить/Удалить» неактивны.WinForm propertygrid Редактор коллекции Add/Remove buttons Inactive

Я знаю, что для некоторых из этих коллекций потребуется специальный редактор, поскольку они довольно сложны, но большинство из них довольно просты. Есть ли простой способ активировать кнопки добавления/удаления для этих простых классов или мне нужно создать собственный редактор для каждой коллекции?

ответ

1

Чтобы активировать кнопку «Добавить и удалить», вам понадобится коллекция для реализации не общего интерфейса IList, и, очевидно, свойство ReadOnly должно вернуть false.

Примечанию вам нужно явная реализация на классе, просто вывод из класса или интерфейса, который сам по себе является производной от IList (SUC в IList<Something>) будет не работы.

Например, следующий не в порядке:

public class MyStuffCollection : List<MyStuff> 
{ 
} 

и следующие в порядке:

public class MyStuffCollection : List<MyStuff>, IList 
{ 
} 
+0

Спасибо, я не уверен, что вы имеете в виду 'явной реализации на class' - - Вы говорите, что мне нужно создать собственный класс или есть классы в .NET, которые явным образом реализуют его? –

+0

Это означает, что ваш класс должен быть получен непосредственно из 'IList'. Выйти из класса или интерфейса, который сам происходит из 'IList', недостаточно. –

+0

Поскольку это должно быть получено из IList, значит ли это, что я не смогу использовать что-либо вроде SortedList или Dictionary? –