Accesseur set sur propriété collection...

Signaler
Messages postés
147
Date d'inscription
samedi 7 juin 2003
Statut
Membre
Dernière intervention
8 décembre 2007
-
Messages postés
147
Date d'inscription
samedi 7 juin 2003
Statut
Membre
Dernière intervention
8 décembre 2007
-
Bon voilà j'ai un composant avec une propriété de type arraylist avec un éditeur personnalisé..
Ma propriété arraylist est en persistence inner propriété et elle est parsée au niveau de la classe objet...
Le problème est que dans le designer de VS je ne peut pas utiliser la méthode set pour mettre à jour les objets de mon arraylist
Quelqu'un a t il une solution ?
Comment puis je mettre à jour ma propriété dans mon éditeur personnalisé sans accesseur set ?

Merci d'avance

4 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
14 février 2014
38
le set ne permet que de changer la référence vers une instance d'une arraylist.


pour ajouter un objet das l'arraylist, il passe par le get, puis la méthode Add.


 


en fait, dans VS, tu ne peux pas ajouter d'item à une arraylist car elle attend des objects. Par contre tu peux créer toi-même ta collection.






Sébastien FERRAND
(

blog
)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
147
Date d'inscription
samedi 7 juin 2003
Statut
Membre
Dernière intervention
8 décembre 2007

D'accort je comprends le principe mais alors comment il est possible de faire pour que dans un propertygrid côté Designer de Visual Studio je puisses accéder à mon éditeur et modifier mon arraylist sans avoir le message "Object reference not set to an instance of an object" ??
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
14 février 2014
38
dans le constructeur de ta classe, il faut initialiser ton object :)

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
147
Date d'inscription
samedi 7 juin 2003
Statut
Membre
Dernière intervention
8 décembre 2007

Ah là je comprends pas,
Mon objet hérite d'un autre et je n'utilise pas de constructeur, c'est un control
J'ai naturellement :
private

ArrayList _monAL =
new
ArrayList();

[

RefreshProperties(
RefreshProperties.All)][

PersistenceMode(
PersistenceMode.InnerProperty)]

[

Editor(
typeof(
monEditeurAL),
typeof(
UITypeEditor))]

[DesignerSerializationVisibility(
DesignerSerializationVisibility.Content)]

public
ArrayList monAL{

get {
return _monAL; }

set { _monAL =
value; }}

Et lorsque dans le designer j'utilise mon composant et que je créé mes objets dans mon ArrayList le premier coup le set marche bien et le second ça me met le message d'erreur "Object reference not set to an instance of an object"
Alors si je ne peux pas utiliser le set comment je peux utiliser mon éditeur pour récupérer ma liste actuelle d'objet et la mettre à jour ?
J'ai vraiment pas compris l'histoire du constructeur et de l'initialisation