Entwickler-Ecke

WinForms - DataGridView: XML-File in (Editor erzeugte) Spalten einfügen


euglor - Sa 06.12.08 22:23
Titel: DataGridView: XML-File in (Editor erzeugte) Spalten einfügen
Hallo Freunde,
ich habe hier ein kleines Problem und alles googlen hat mich leider nicht weiter gebracht. Zwar finde ich in der MSDN jede Menge, aber leider auch nichts, was mich weiterbringt. Eigentlich sollte es ganz einfach sein, aber ich arbeite das erste mal mit dem DataGridView-Steuerelement. Folgendes:

Ich habe ein DataGridView in meinem Form und fülle dieses mit den Daten aus einer XML-File, kann das DGV auch editieren und anschliessend wieder als XML speichern. Das funktioniert auch ganz gut.

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
            
XmlDataDocument xmlDatadoc = new XmlDataDocument();
xmlDatadoc.DataSet.ReadXml("XMLData.xml");
ds = xmlDatadoc.DataSet;

dataGridView1.DataSource = ds.DefaultViewManager;
dataGridView1.DataMember = "Unternehmen";

Dabei werden die Spalten automatisch nach den Tags der XML-File erstellt. Nun möchte ich aber z.B. auch eine Dropdownbox oder einen Link im DGV haben. Dies kann ich ohne weiteres machen, wenn ich mit dem Editor von VS2008 die Spalten erstelle. Dann werden die Daten der XML-File jedoch nicht in die vordefinierten Spalten geschrieben, sondern nochmal die Spalten automatisch generiert und an die aus dem Editor angehängt. Wie bekomme ich die Daten aus der XML-File in die mit dem Editor erstellten Spalten? Bin völlig ratlos und freue mich über Tips.

Vielen Dank.


Christoph1972 - So 07.12.08 10:29

Ich kann dir zwar nicht weiterhelfen, aber ich habe es momentan auch mit einem DGV zutun, in dem sich eine Combobox befindet. Diese kann in bestimmten Fällen wirklich hässlich in der Handhabung sein, weil sie den Index der der Datenquelle speichert und nicht den Text, wenn der Index verändert wird gibts eine dicke Exception. Ich denke aber, das die ReadXML Methode zu simpel ist, als das so eine Aufgabe erledigen könnte. Vermutlich musst du die entsprchende Column mit einer Schleife füllen.


Gruß
Christoph


Kha - So 07.12.08 11:43

Die auto-generierten Columns bekommst du mit AutoGenerateColumns( ;) ) weg. Beim Binding der im Designer erstellten Columns hast du wohl noch einen Fehler drin, DataPropertyNamehast du gesetzt?


euglor - So 07.12.08 14:51

Hattest malwieder recht ;) Nun krieg ich die Daten in die vom Designer erstellten Spalten. Vorher hatte es nur per Hand geklappt.

An der ComboBox tüftel ich grad noch und melde mich...

vielen Dank