Autor Beitrag
Luna1987
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16

WinXP

BeitragVerfasst: Mo 16.03.09 15:12 
Hy @ all 8)
Habe ein Problem :!: Habe eine ListView und dort verschiedene Spalten erzeugt. Diese sollen nun natürlich gefüllt werden.
Aus einem XML Dokument stammen die Daten, die in der jeweiligen Spalte eingefügt werden sollen. Über eine Schleife werden die Spalten erzeugt, die in dem XML Dokument vorhanden sind. Nur die erste Spalte ("File") wird vorher extra erzeugt. (genaueres: siehe Programmcode)
ABER: Entweder füllt sich bei mir nur die “File”Spalte komplett und der Rest unvollständig (siehe Dateianhang Bild1: Fall1) ODER alle anderen Spalten füllen sich wie gewünscht, nur die „File“Spalte füllt sich immer gleich (siehe Dateianhang Bild2: Fall2).

Habe mal ein Teil des XML Dokuments und beide unterschiedlichen Fälle als Programmcode hinzugefügt. Das liegt bestimmt irgendwie an dem „listView.Items.Add(item)“. Habe alles schon irgendwie ein paarmal verschoben, aber es kommt nie das richtige bei raus. Vielleicht kann mir jemand helfen?!

XML Dokument:
ausblenden volle Höhe XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
<?xml version="1.0" encoding="UTF-8" ?> 
  <sourcemonitor_metrics>
  <project version="2.5">
    // Hier werden die Namen der einzelnen Spalten erwähnt
    <metric_names name_count="15">
      <metric_name id="M0" type="number">Lines</metric_name
    <metric_name id="M1" type="number">Statements </metric_name
    ...
  <checkpoints checkpoint_count="1">
             <checkpoint checkpoint_name="Baseline">
               <files file_count="2">
                   // Hier wird der erste Dateiname, der geprüft wird, erwähnt
                   <file file_name="CopyFromMainForm.cs">
                       <metrics metric_count="15">
                          // Hier sind die verschiedenen Analyseergebnisse der einzelnen Spalten der ersten Datei
          <metric id="M0">18</metric
          <metric id="M1">11</metric>
          <metric id="M2">0.0</metric
          <metric id="M3">0.0</metric
          <metric id="M4">1</metric
          ...
                </metrics>
                    </file>
                    // Hier wird der zweite Dateiname, der geprüft wird, erwähnt
                    <file file_name="CopyFromProgram.cs">
                       <metrics metric_count="15">
                       // Hier sind die verschiedenen Analyseergebnisse der einzelnen Spalten der zweiten Datei
          <metric id="M0">25</metric
          <metric id="M1">9</metric>
          <metric id="M2">20.0</metric
          <metric id="M3">16.0</metric
            <metric id="M4">1</metric
          ...
                </metrics>
                    </file>
        ...
</sourcemonitor_metrics>


(Tut mir leid, das es so blöd eingerückt ist, aber das funktioniert hier nicht vernünftig mit diesen Tabs usw.)

Programmcode Fall 1:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
foreach (XmlNode files in filess)
{
  XmlNode file = files["file"];
  if (file == null)
  {
    break;
  }
  //Nun gucke ich im XML Dokument ob vom Element "file" das Attribut "file_name" gleich dem FileNamen aus 
  // meiner List Box ist (habe vorher cs Dateien eingelesen und diese in einer ListBox gespeichert)
  if (fileName == file.Attributes["file_name"].InnerText)
  {
    foreach (XmlNode metrics in metricss)
    {
      ListViewItem item = new ListViewItem(fileName);
      XmlNode metric = metrics["metric"];
      while (true)
      {
        if (metric == null)
        {
          break;
        }

      item.SubItems.Add(metric.InnerText);
      metric = metric.NextSibling;
      }
    listView.Items.Add(item);
    }
  }
}


Programmcode Fall 2:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
foreach (XmlNode files in filess)
{
  XmlNode file = files["file"];
  if (file == null)
  {
    break;
  }
  ListViewItem item = new ListViewItem(fileName);
  if (fileName == file.Attributes["file_name"].InnerText)
  { 
    foreach (XmlNode metrics in metricss)
    {
      XmlNode metric = metrics["metric"];
      while (true)
      {
        if (metric == null)
        {
          break;
        }
      item.SubItems.Add(metric.InnerText);
      metric = metric.NextSibling;
      }
    }
  }  
listView.Items.Add(item);
}


Ich danke euch für eure Hilfe.
Lg Anne :D
Einloggen, um Attachments anzusehen!
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mo 16.03.09 17:10 
Wenn du eine Frage zweimal stellst, wird sie dadurch auch nicht schneller beantwortet werden :nixweiss: .

*closed*

_________________
>λ=
Dieses Thema ist gesperrt, Du kannst keine Beiträge editieren oder beantworten.

Das Thema wurde von einem Team-Mitglied geschlossen. Wenn du mit der Schließung des Themas nicht einverstanden bist, kontaktiere bitte das Team.