Entwickler-Ecke

WinForms - DataSource vom DataGridView aktuallisieren


bamba - Mo 28.07.14 11:03
Titel: DataSource vom DataGridView aktuallisieren
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; //ab hier werden entsprechenden Event´s angestößen

}


NebenForm

C#-Quelltext
1:
2:
3:
4:
5:
private void setData(){

    objSchicht2.getData(ref myData); //sobald diese Zeile ausgeführt wird, sollte auch der Code in der Hauptform ausgeführt werden um das Grid mit neuen Daten zu zeichenen.

}



Aber die Events in der Hauptform werden nicht angesprochen :(
Somit bleibt das Grid auf dem alten Zustand.

Danke für jeden Tipp


Ralf Jansen - Mo 28.07.14 11:22

Wird die gleiche DataTable Instanz verwendet?
Der

C#-Quelltext
1:
public DataTable getData(ref DataTable myDataTable){                    

Methode kann man das so wie du sie zeigst nicht ansehen. So ist das übergeben per ref auch Unsinn. Zeig uns wie die Methode wirklich aussieht.