wpf. programm stundenplan und folgendes problem
-
Donnerstag, 26. April 2012 15:39
Hallo.
ich hab folgendes problem. ich hab mit wpf und c# (vs2010) einen programm geschrieben (oder besser gesagt damit angefangen) das meinen stundenplan organisieren soll. ich habe 2 klassen geschrieben. eine klasse namens stunden, die andere namens stundenplan. die stunden (mit feldern wie name des fachs, und art des fachs, etc...) werden nach klick auf einen button auf einen anderen button angezeigt und in eine liste stunden (stunden[]) gespeichert. aber jedes mal wenn ich ein neues fach speichere entsteht zwar der neue button mit dem neuen namen des fachs etc, in der stundenliste (stunden[]) werden allerdings alle vorherigen einträge mit dem aktuellen eintrag überschrieben. das bedeuted egal welchen button ich anklicke, er gibt mir immer die referenz auf die aktuelle stunde zurück, nicht aber die an dem button gespeicherte.
hat jmd vllt ne idee wo der fehler steckt oder wie man das problem umgehen kann?
danke im voraus!
mfg izi27
Alle Antworten
-
Donnerstag, 26. April 2012 17:01Vermutlich wird nicht richtig instanziert bzw. die richtige Instanzvariable genutzt.Vielleicht versuchst Du mal die Frage in einem Forum in deiner Muttersprache zu stellen. Die Beschreibung ist nur sehr schwer verständlich.--
Viele Gruesse
Peter -
Donnerstag, 26. April 2012 18:31
Stunden std = new Stunden();
//columns = 5, rows = 10
Stunden[,] stdList = new Stunden[columns, rows];
//diese methode soll die aktuelle stunde in das array eintragen
//unter dem index col, row (also tag, uhrzeit)
public void AddToPlan(int col, int row) {
stdList[col, row] = std;
}//diese methode wird aufgerufen sofern der user auf den button speichern klickt
//der im wpf layout window vordefiniert wurde
//diese methode habe ich jedem dynamisch erzeugten button zugefügt
//sobald man eine stunde gespeichert hat, ist die als button sichtbar im fenster
//die position des buttons is tag, uhrzeit. wenn ich den butten anwähle wirde diese methode aufgerufen
//hier soll die instanz der klasse Stunden aufgerufen werden, die mit dem button verknüpft wurde
private void StdPlanGetStd(object sender, RoutedEventArgs e) {
Button btnSender = (Button)sender;
for (int c = 1; c < columns; c++) {
for (int r = 1; r < rows; r++) {
if(blockcontrol[c, r] == btnSender) { //zeigen beide auf das selbe stunden-objekt
MessageBox.Show("TRUE\r c=" + c + " r=" + r + "\r" + blockcontrol[c, r].Content + "::" + btnSender.Content);
Std = stdList[c, r];
MessageBox.Show(Std.Lessonname);
}
}
}
} -
Freitag, 27. April 2012 00:24
danke ich habe den fehler gefunden!
herr fleischer sie hatten recht. ich benutze nur eine instanz der klasse stunden und übergebe diese dann überschrieben an die liste, die dann ja natürlich auf alle referenzen auf das neue objekt biegt.
- Als Antwort markiert izi27 Freitag, 27. April 2012 00:25

