Inxday2005
Messages postés3Date d'inscriptionvendredi 6 mai 2005StatutMembreDernière intervention12 novembre 2005
-
11 mai 2005 à 03:15
inxday
Messages postés8Date d'inscriptionjeudi 22 juillet 2004StatutMembreDernière intervention13 mai 2005
-
16 mai 2005 à 02:00
Bonjour,
J'essaye de faire une 'sauvegarde' du contenu d'un listView au moyen d'une 'xmlSerialization' ...
Mais j'y arrive pas ... Quelqu'un d'entre vous arrive-t-il à faire se genre de sauvegarde par ce moyen ou un autre ???
D'avance merci à ceux qui m'aideront (et à ceux qui aurait bien voulu mais qui rame un peu, comme moi ;-)
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 11 mai 2005 à 08:08
Salut,
Pour pouvoir sérializer un object, il faut que la class soit marquée Serializable (avec l'attribut [Serializable()]). Si ce n'est pas le cas, tu dois écrire ta propre méthode de sérialization qui fera le travail. Pour des détails supplémentaires, je te renvoie au nombreux codes parlant de ce sujet sur ce site....
PS : Si juste certaine infos t'intéresse dans ton listView, tu peux créer une nouvelle classe avec l'attribut [Serializable()] et y stocker ce que tu veux, puis sérializer cet object au lieu de ton listView, si réellement c'est pas faisable ()
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 11 mai 2005 à 08:59
Salut,
En plus sérialiser le contrôle lui même je ne pense pas que ce soit une bonne idée.
Par contre tu devrais pouvoir sauvegarder ses items en les récupérant sous forme de collection ou tableau de ListViewItem et en te servant de AddRange pour les "recharger".
inxday
Messages postés8Date d'inscriptionjeudi 22 juillet 2004StatutMembreDernière intervention13 mai 2005 11 mai 2005 à 12:18
Tout d'abord merci ...
J'ai lu ce qu'ils disent sur MSDN et effectivement il doit être
possible de créer une objet contenant un tableau dans lequel on peut
mettre les item du listview au moyen de ListViewItemCollection.CopyTo(
array, index); Et de serializer cet objet ...
Vous ai-je bien compris ???
- si je met le tableau en public, je peux le serializer telquel ???
Geoffroy
Ps : le but final est d'obtenir une classe PersoListView(); qui est editable et auto-sauvegardable, je suis parti de cet article pour la partie éditable (arrangé à ma sauce).
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 11 mai 2005 à 12:29
Ouep :-)
Mais tu n'as pas forcement besoin d'un niveau d'accessibilité public.
D'aileurs logiquement tu fais l'extraction du tableau d'items au moment de la sérailisation, donc dans la même méthode.
Cocoricoooooooo !!!!
coq
MVP Visual C#
Vous n’avez pas trouvé la réponse que vous recherchez ?
inxday
Messages postés8Date d'inscriptionjeudi 22 juillet 2004StatutMembreDernière intervention13 mai 2005 12 mai 2005 à 00:09
Salut,
Heeee, ben je vais voir ça alors plus en profondeur, mais j'avais lu
que la serialisation xml ne pouvant se faire que sur des éléments
public ... En même temps, je pense avoir vu un article sur la
serialization des array's qui pourra peut être m'être utile ...
En tout cas, je remercie la communauté C# qui m'est d'un grand secours
pour mon petit problème ( en particulier je fais un grand cocorico ;-)
) et je mettrai le résultat de mes recherches et l'aboutissement de mon
travail le plus rapidement possible en ligne.
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 12 mai 2005 à 08:19
Dans le cas de la sérialisation d'une instance de classe (ou structure) oui, seuls ses membres public peuvent être sérialisés, mais l'instance de la classe elle même n'as pas besoin de l'être, du moment qu'elle a un niveau d'accessibilité suffisant pour etre accessible à l'endroit où s'effectue la serialisation.
inxday
Messages postés8Date d'inscriptionjeudi 22 juillet 2004StatutMembreDernière intervention13 mai 2005 12 mai 2005 à 18:07
Ok je commence à comprendre ,
J'ai avancé dans mes recherche, je vais travailler en serialisant un
listViewItem, et j'ajouterai ce qu'il faut pour ajouter le nombre de
colonnes et le titre de celles-ci dans le fichier.
Cependant c'est dommage que ce ne soit pas "natif" ...
Encore merci, et bientôt un article avec source pour prolonger la liste ...
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 12 mai 2005 à 18:32
"Cependant c'est dommage que ce ne soit pas "natif" ..."
d'un autre côté on n'a pas besoin de ce genre de fonctionnalité tous les jours sur un listview :-)
inxday
Messages postés8Date d'inscriptionjeudi 22 juillet 2004StatutMembreDernière intervention13 mai 2005 12 mai 2005 à 20:19
Heeeee, bon ça va ...
Cependant, mon premier prog en C# en a besoin, à moins que j'ai
encore réussi à compliqué alors qu'on peut faire simple ??? De
toute façon, le plus simple pour faire une liste de course, c'était de
prendre un bout de papier et un crayon avec une gomme ;-) On dira
que c'est pour la beauté du code ....
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 12 mai 2005 à 20:50
Ba theoriquement ton listview ne doit te servir qu'a afficher les données, pas servir de conteneur.
Donc tu devrais serialiser/deserialiser le "conteneur" (ArrayList etc) et recharger le listview avec.
Tu as peut etre l'architecture de l'appli à revoir :-)
inxday
Messages postés8Date d'inscriptionjeudi 22 juillet 2004StatutMembreDernière intervention13 mai 2005 13 mai 2005 à 01:57
Salut Coq, salut les autres,
Tu as probablement raison, mais étant entièrement autodidacte, on
ne m'a jamais appris la "bonne" méthode ... je vais dans le sens où les
choses me font aller ...
Quand tu parles d'un arraylist, tu veux dire une liste liée ??? parce
qu'effectivement ça devrait le faire mais j'ai pas trop envie d'écrire
une classe de list liée, ni de me servir d'un code tier que je
comprends à moitier ... et de ramer la dedans en plus ...
(Rmq : Ca marche comment les pointeurs en c# ???)
Finalement, j'hérite un listview, (qui comprend un listviewitem ( sans
doute une sorte de listliée simplifiée )) j'y ajoute un tableau
avec les titres des colonnes et je serialize/deserialize le tout
. C'est sans doute pas une conception très pro, je te le concède, mais
ce n'est que pour faire une petite appli perso et progresser ( toutes
les bonnes idées m'intéressent donc ... Faites de moi un guru ;-)
Et si ça marche, peut-on vraiment dire que c'est pas la bonne méthode
?? Je me suis laisser dire que le plus intéressant était l'objectif et
non les moyens mis en oeuvre (je parle de petites applications peu
gourmande en cpu , mémoire ...)
Voila donc un long discourt pour dire que je suis ouvert à tout, mais
que j'ai assez peu de connaissance en fait ( encore moins en c# -
1er prog - je vient de delphi et c/c++ en mode console ).
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 13 mai 2005 à 09:43
Ca tombe bien, moi aussi je suis complètement autodidacte.
Je parlais de la classe ArrayList du framework.
Tu devrais jeter un oeil aux classes des namespaces System.Collections et System.Collections.Specialized, y'a plein de trucs sympa ;-)
PS : les pointeurs oublie les, sauf cas bien précis qui demandent des perfs impossible à obtenir en managé et nécessitant du code unsafe.
Si vous avez des commentaires, n'hésitez pas ... Je suis toujours prêt à apprendre de mes erreurs ...
Finalement je remercie Coq pour ses conseils, même si finalement je ne me suis pas servi d'arraylist, ni de collection. C'est pas perdu pour autant au contraire !