Я создаю класс с именем PanelsList
, который в основном представляет собой TabControl
без заголовков сверху, поэтому страницы можно изменять только программно.Каждая «вкладка» будет и экземпляром класса с именем PanelsListItem
, производным от Panel
.Я также создал класс PanelsListItemCollection
, который реализует ICollection
и ICollection<PanelsListItem>
.Поэтому я добавил следующее к своему PanelsList
:
private PanelsListItemCollection _Items;
public PanelsListItemCollection Items
{
get { return _Items; }
set { SetItems(value); }
}
private void SetItems(PanelsListItemCollection value)
{
if (_Items != value)
{
if (_Items != null) _Items.PanelsList= null;
_Items = value;
if (_Items != null) _Items.PanelsList= this;
}
}
Я предполагал, что после построения и добавления PanelsList
в мою форму я смогу редактировать PanelsListItemCollection
во время разработки.Но когда я нажимаю кнопку «...» в свойстве Items
в редакторе Proeprties , открывается редактор Object Collection , но Add и Удалить кнопки отключены.
Когда я добавил свойство List<Control> Stuff { get; set; }
к своему PanelsList
, я мог добавлять и удалять элементы управления из Stuff
во время разработки.Интересно, нужно ли мне реализовать IList
вместо ICollection
?
Редактировать: Я просто попытался также реализовать IList<PanelsListItem>
, но это не помогло.