Bonjour,
j'ai une question simple en C#, je n'ai pas trouvé comment enregistrer simplement une TreeView dans un fichier XML
j'ai vu qu'en VB on pouvait faire TreeView.SaveToFile()
mais en C# je cherche tjs...
merci
Version imprimable
Bonjour,
j'ai une question simple en C#, je n'ai pas trouvé comment enregistrer simplement une TreeView dans un fichier XML
j'ai vu qu'en VB on pouvait faire TreeView.SaveToFile()
mais en C# je cherche tjs...
merci
merci pour ton lien, que je vais aller voir de suite
la j'ai un peu avancé avec ca :
http://discuss.fogcreek.com/dotnetqu...ow&ixPost=4428
mais j'obtiens une erreur:Code:
1
2
3
4
5
6
7
8
9
10
11 ArrayList nodeList = new ArrayList(); FileStream fs = File.OpenWrite("tree.bin"); BinaryFormatter bf = new BinaryFormatter(); foreach (TreeNode node in (treeView1.Nodes)) { nodeList.Add(node); } bf.Serialize(fs, treeView1); fs.Close();
Citation:
Le type 'System.Windows.Forms.TreeView' dans l'assembly 'System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' n'est pas marqué comme sérialisable.
c'est juste que le treeview (comme TOUS les controles de windows.Form) n'est pas sérialisable :)
The Monz, Toulouse
hum... ca m'apprendra a C/C du code sans reflechir, je pense que l'erreur vient du "bf.Serialize(fs, treeView1);" il faut mettre bf.Serialize(fs, nodeList );
enfin je pense... ca marche deja un_peu_mieux...
A mon avis il y a une erreur dans ce code...
Au lieu de
Il faudrait mettreCode:bf.Serialize(fs, treeView1);
Code:bf.Serialize(fs, nodeList);
EDIT: pas assez rapide :aie:
Par contre ça sérialisera en binaire, pas en XML, et ça ne conservera pas l'arborescence...
Et comme la classe TreeNodeCollection a le mauvais goût de ne pas être sérialisable, je pense qu'il faut se taper ça à la main :?
salut
l'idéal dans ce genre de contexte, est d'avoir un modele MVC
Donc, tu auras tes données et par contre, ton TreeView se remplira en fonction de données provenant d'un autre élément de ton document...
A condition de faire du MVC, ce qui n'est pas toujours le cas surtout quand on veut "gagner" du temps :)
The Monz, Toulouse