Autor Beitrag
Christoph1972
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 690
Erhaltene Danke: 16


VS2015 Pro / C# & VB.Net
BeitragVerfasst: Sa 22.11.08 13:14 
Hallo zusammen


ich schreibe den Inhalt eines DataGridViews via DataSet.WriteXML in eine XML Datei. Das funktioniert soweit. Nun möchte ich aber das eine Column des DGV eine DataGridViewComboBoxColumn ist. Sobald diese aber mit ins Spiel kommt werden keine Daten mehr aus dem DS gestreamt.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
DataSet DS = new DataSet();

DGV.AutoGenerateColumns = true;
DGV.DataSource = DS;

DS.Tables.Add("DGVTable");
DGV.DataMember = "DGVTable";

DS.Tables["DGVTable"].Columns.Add("Col1");
DS.Tables["DGVTable"].Columns.Add("Col2");
DS.Tables["DGVTable"].Columns.Add("Col3");


Soweit funktioniert es. Wie kann ich denn erreichen das die erste Column ein Combobox Feld ist?


Dann habe ich es noch so versucht:
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:
DS.Tables.Add("DGVTable");
DS.Tables[0].Columns.Add("Stoff");

DGV1.AutoGenerateColumns = false;

DGV1.DataMember = "DGVTable";
DGV1.DataSource = DS;
            
DataGridViewComboBoxColumn ColCombBox = new DataGridViewComboBoxColumn();
ColCombBox.DataSource = DS.Tables[0];
ColCombBox.ValueMember = DS.Tables[0].Columns[0].ColumnName.ToString();
ColCombBox.DisplayMember = ColCombBox.ValueMember;
ColCombBox.HeaderText = "ComboBoxColumn";
DGV1.Columns.Add(ColCombBox);
                      

DataGridViewTextBoxColumn Column1 = new DataGridViewTextBoxColumn();
Column1.HeaderText = "Col1";
DGV1.Columns.Add(Column1);

DataGridViewTextBoxColumn Column2 = new DataGridViewTextBoxColumn();
Column2.HeaderText = "Col2";
DGV1.Columns.Add(Column2);


Funktioniert natürlich nicht, weil ja so keine Daten in der Tabelle des Datasets sind. Ich habe das dann mit der ersten Methode kombiniert. Aber das funktioniert auch nicht. Das DataSource funktioniert dann scheinbar nicht mehr. Die XML Datei ist immer leer, bzw. steht da nur Dataset drinn.

Hat jemand eine Idee wie das realisieren kann?



Gruß
Christoph
Christoph1972 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 690
Erhaltene Danke: 16


VS2015 Pro / C# & VB.Net
BeitragVerfasst: Sa 22.11.08 18:17 
So, ich habe jetzt eine Lösung. Ich habe das mit dem Designer gemacht, dann funktioniert es. Aber auch nur, wenn man Das DataSource und den DataMember des DGVs im Load manuell zuweist. Wenn man das mit dem Designer macht, dann wird aus der ComboBoxCell ein Textfeld. Naja, es funktioniert, aber ich hätte es ohne Designer schöner gefunden. Dann ist später immer besser nachvollziehbar was das passiert. Vielleicht werde ich es morgen noch mal versuchen.........

Ich lasse den Thread mal offen, da es nicht die "optimale" Lösung ist, wie ich finde.



Gruß
Christoph