Autor Beitrag
Ivy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 228



BeitragVerfasst: Mi 20.07.11 08:37 
Gutenmorgen,
ich habe eine XML datei in der zuvor daten aus einer ListView gespeichert wurde. Anschließend möchte ich nun die daten weider in meine ListView zurück laden. Jedoch sind die Items in meiner LV Images (in imagelist) und diese sollen auch wieder in der LV erscheinen. Wie kann ich nun das so verknüpfen, dass über den Imagenamen auch das Bild geladen wird und nicht nur der text?

Hier der bisherige code zum laden:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
XmlDocument xml = new XmlDocument();
            xml.Load(PfadXMLFile); // pfad xml datei

            XmlNodeList xnList = xml.SelectNodes("/Rack");
            foreach (XmlNode xn in xnList)
            {
                string Modulbezeichnung = xn["Modulbezeichnung"].InnerText;
                            
                   ListViewItem item = new ListViewItem(Modulbezeichnung);
                    item.SubItems.Add(Modulbezeichnung);
                    lvwZiel.Items.Add(item);


Und die Struktur meiner XML datei:
ausblenden XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
<Rack>
<Rackhoehe>16</Rackhoehe>
<Projekt>98765</Projekt>
<Module>
<Modul1 Imageindex="0" Modulbezeichnung="Blindplatte" />
<Modul2 Imageindex="2" Modulbezeichnung="Netzteil" />
<Modul3 Imageindex="3" Modulbezeichnung="Rechner" />
</Module>
</Rack>


Vielleicht hat ja jemand eine idee, auf jedenfall müsst ich ja über den imageindex i-wie auf die Bilder kommen....

Auf die Felder Projekt usw greife ich so zu und das klappt auch wunderbar:
ausblenden C#-Quelltext
1:
  XmlNode node = doc.SelectSingleNode("/Rack/Projekt");					

Aber mit meinen Bilder klappt das nicht.

Danke LG


Zuletzt bearbeitet von Ivy am Do 20.10.11 09:11, insgesamt 3-mal bearbeitet
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 20.07.11 12:00 
Ich glaube nicht, dass du daraus den Originalpfad des Bildes rekonstruieren kannst. Den solltest du stattdessen beim Laden des Bildes direkt mit in das ListViewItem speichern, z.B. im Tag, und dann entsprechend speichern und laden.

_________________
>λ=
Ivy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 228



BeitragVerfasst: Do 21.07.11 08:44 
aha, also du meinst ich soll die bild pfad mit in die xml datei speichern?? aber es gibt ja keinen pfad wenn die bilde rin meiner imagelist drinnen sind?!
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Do 21.07.11 10:12 
Hallo Ivy,

ist das denn eine feststehende ImageList? Wenn ja, dann brauchst du doch nur den ImageIndex bzw. den Key in der XML zu speichern und mittels "listViewItem.ImageIndex" bzw. "listViewItem.ImageKey" zuzuweisen.
Ivy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 228



BeitragVerfasst: Do 21.07.11 10:27 
okay, habe den index jetzt in meiner xml datei gespeichert:

ausblenden C#-Quelltext
1:
   writer.WriteElementString("Imageindex", items.ImageIndex.ToString());					


und wie bekomm ich das jetzt wieder aufgerufen?? habs so probiert, aber es erscheint nur eine zahl "-1"

ausblenden C#-Quelltext
1:
lvwZiel.Items.Add(item.ImageIndex.ToString());					
Ivy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 228



BeitragVerfasst: Do 20.10.11 08:57 
ERLEDIGT