Lors du développement de DataBoundControl, nous utilisons la persistence de propriétés pour les éléments de la collection "bindée".

Je me suis retrouvé face à un effet de bord de l'utilisation de cette propriété. Voici la première déclaration utilisée :

1
2
3
4
[Category("Data")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
[PersistenceMode(PersistenceMode.InnerProperty)]
public virtual TabHeaderCollection Items

L'utilisation de mode InnerProperty a pour effet de proposer 2 éléments dans l'intellisence de Visual Studio, la propriété Items ainsi que le type des éléments sous-jacents :

Afin d'arriver au même comportement qu'une DropDownList et masquer de l'intellisence la propriété Items, il vous suffit d'utiliser le mode InnerDefaultProperty :

1
2
3
4
[Category("Data")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
[PersistenceMode(PersistenceMode.InnerDefaultProperty)]
public virtual TabHeaderCollection Items

Et voici le résultat :

Aurelien
Member of WygTeam