Entwickler-Ecke

Basistechnologien - DataSet für geöffnete Forms aktualisieren...


dinazavric - Fr 13.05.11 13:21
Titel: DataSet für geöffnete Forms aktualisieren...
Hallo,

ich habe eine XML-Datei, aus der ich ein DataSet erstelle. In meiner Anwendung habe ich mehrere Forms, die mit dem DataSet arbeiten (jedes Form hat ein internes DataSet). Die Änderungen werden dann immer in der einen XML-Datei übernommen. Leider, wenn ich das eine Form schließe, wird das interne DataSet nicht aktualisiert. Ich möchte aber, dass die Daten gleich beim Schließen eines Forms in allen anderen mitübernommen werden. Es kann entweder beim Schließen des Forms über "x"-Button oder über eins dafür vorgesehenen "Übernehmen"-Button geschehen. Leider weiß ich nicht wie ich ein DataSet für alle Forms erstelle (global). Eine Datenbank würde ich ungern benutzen...

Bin für jeden Tipp oder Hinweis dankbar!


Th69 - Fr 13.05.11 15:38

Hallo,

wenn du immer für alle Forms dasselbe DataSet verwenden willst, dann übergebe jeweils das DataSet per Konstruktor bzw. als Eigenschaft an die anderen Forms weiter.
Am besten, nur das Hauptform erzeugt dann die eigentliche Instanz per 'new'.

Falls es sehr viele Forms sind, kannst du auch eine Klasse ähnlich wie die Settings selbst erzeugen:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
class MySettings
{
  static MySettings()
  {
     Default = new MySettings();
     Default.DataSet = new DataSet();
  }

  public static MySettings Default { get; private set; }

  public DataSet DataSet { get; set; }
}

Zugriff dann jeweils pro Form per

C#-Quelltext
1:
DataSet ds = MySettings.Default.DataSet;