Accesseur set sur propriété collection...

Bubuss Messages postés 147 Date d'inscription samedi 7 juin 2003 Statut Membre Dernière intervention 8 décembre 2007 - 29 août 2006 à 17:28
Bubuss Messages postés 147 Date d'inscription samedi 7 juin 2003 Statut Membre Dernière intervention 8 décembre 2007 - 31 août 2006 à 10:01
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

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 36
30 août 2006 à 06:21
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#]
0
Bubuss Messages postés 147 Date d'inscription samedi 7 juin 2003 Statut Membre Dernière intervention 8 décembre 2007
30 août 2006 à 09:52
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" ??
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 36
30 août 2006 à 20:00
dans le constructeur de ta classe, il faut initialiser ton object :)

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
0
Bubuss Messages postés 147 Date d'inscription samedi 7 juin 2003 Statut Membre Dernière intervention 8 décembre 2007
31 août 2006 à 10:01
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
0
Rejoignez-nous