Bonjour,
j'ai une classe CCritere ressemblant à ceci:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| public class CCritere
{
#region Variables de classe
//Pouvoir savoir s'il faut activer ou désactiver le critère
private Boolean _EstAccessible;
#endregion
#region Propriétés et indexeurs
/// <summary>Propriété gérant l'accès en lecture et écriture de la variable de classe _EstAccessible</summary>
[Browsable(true)]
[Category("_Cram")]
[Description("Détermine l'accessibilité du critère")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
public Boolean EstAccessible
{
get
{
return this._EstAccessible;
}
set
{
this._EstAccessible = value;
}
}
#endregion
#region Constructeurs
/// <summary>Constructeur minimaliste</summary>
public CCritere()
{
this._EstAccessible = true;
}
#endregion
} |
J'ai ensuite un UserControl qui possède une variable _TestCritere de classe de type CCritere avec un accesseur correspondant:
1 2 3 4 5 6 7 8 9 10 11 12
| /// <summary>Propriété gérant l'accès en lecture de la variable de classe _TestCritere
/// </summary>
[Browsable(true)]
[Category("_Cram")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
public CCritere TestCritere
{
get
{
return this._TestCritere;
}
} |
Quand, via la fenêtre des propriétés, je modifie la valeur de la propriété EstAccessible, pas de souci, une fois compilé, Visual Studio a bien rajouté la modification de la propriété EstAccessible pour la variable _TestCritere dans le fichier Designer.cs.
Le problème est que en fait je souhaiterais utiliser une liste d'objets CCritere via la variable de classe:
private CListeCritere _ListeCritere;
(la classe CListeCritere ayant la définition suivante: public class CListeCritere : List<CCritere>).
J'ai donc dans mon UserControl la propriété:
1 2 3 4 5 6 7 8 9 10 11
| [Browsable(true)]
[Category("_Cram")]
[Description("Détermine la liste des critère")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
public CListeCritere ListeCritere
{
get
{
return this._ListeCritere;
}
} |
pour manipuler via la fenêtre des propriétés la liste des critères et en particulier définir pour chacun la valeur de la propriété EstAccessible.
Je vois bien ma liste de critères, je peux sans souci, modifier la valeur de la propriété EstAccessible pour chacun d'entre eux mais quand je compile je ne vois rien de plus dans le fichier Designer.
J'ai tenté de mettre [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] comme attribut à la propriété ListeCritere mais là c'est encore pire car Visual Studio vient doubler tous mes critères (via du code généré par Visual Studio dans le fichier Designer.cs) et donc j'ai une liste comportant le double d'éléments.
Merci par avance de votre aide.
Partager