Je crée une classe appelée PanelsList
qui est fondamentalement TabControl
sans les en-têtes en haut, donc les pages ne peuvent être modifiées que par programmation. Chaque "onglet" sera et instance d'une classe appelée PanelsListItem
qui dérive de Panel
. J'ai également fait une classe PanelsListItemCollection
qui implémente ICollection
et ICollection<PanelsListItem>
. Donc, j'ajouté ce qui suit à mon PanelsList
:Comment faire un UserControl avec une collection qui peut être éditée au moment du design?
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;
}
}
Je suppose que la construction et après l'ajout d'un PanelsList
à ma forme, je serais en mesure de modifier le PanelsListItemCollection
sur le temps de conception. Mais quand je clique sur le bouton « ... » sur la propriété Items
dans le Proeprties éditeur, l'éditeur de collection Object ouvre mais le Ajouter et supprimer des boutons sont désactivés.
Lorsque j'ai ajouté une propriété List<Control> Stuff { get; set; }
à mon PanelsList
, je pouvais ajouter et supprimer des contrôles de Stuff
au moment du design. Je me demande si j'ai besoin de mettre en œuvre IList
au lieu de ICollection
?
Modifier: J'ai juste essayé d'implémenter aussi IList<PanelsListItem>
mais il ne l'a pas réparé.