Hallo zusammen, ich verzweifele an einem Problem mit der Aktuallisierung von der DataTable, die an mein DataGridView gebunden ist.
Ich habe auf der GUI-Schicht "MainGui" meinen DataGridView, den ich in der Controller-Schicht mit DataTable fülle, an die GUI-Schicht zurückgebe und ans "DataSource" binde.
Nun ändert eine andere Form-Oberfläche dieses DataTable und dieser Vorgang muss erneut wie oben beschrieben durchgeführt werden.
Sprich, die ganzen Events vom Grid "RowLeave, CellFormatting usw.." müssen wieder von der MainGui aus der zweiten Schicht angestoßen werden.
Code:
ModellSchicht:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| public DataTable retrive(){ string sqlQuery = "SELECT * from meineTabellle"; cmd = new SqlCommand(conn, sqlQuery); sqlUtil.adapter.SelectCommand = cmd; match = new DataTable(); sqlUtil.adapter.Fill(match);
return match; } |
ControllerSchicht (sie ruft "retrive" auf);
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| public DataTable getData(ref DataTable myDataTable){
myDataTable = obj.retrive(); globalDataTable = currentDongel.Copy(); obj.adapter.Update(globalDataTable );
} |
GuiSchicht
HauptForm
C#-Quelltext
1: 2: 3: 4: 5: 6:
| private void getMyData(){
myDataTable = objSchicht2.getData(ref myDataTable); myGrid.DataSource = myDataTable; } |
NebenForm
C#-Quelltext
1: 2: 3: 4: 5:
| private void setData(){
objSchicht2.getData(ref myData); } |
Aber die Events in der Hauptform werden nicht angesprochen
Somit bleibt das Grid auf dem alten Zustand.
Danke für jeden Tipp