Frage von Gotthart, 21

C# Liste aus Klassen bei Windows Form anzeigen und bearbeiten?

Es geht um eine C# Windows Form Anwendung. Es gibt 3 Access Tabellen die Informationen enthalten. Eine Tabelle mit Mitarbeiter, Sollzeiten und Feiertage. Jeder Mitarbeiter, deren Name und Nummer in der ersten Liste steht, hat Sollzeiten an denen er arbeitet(In Form von Tag, Monat, Jahr). In den Feiertagen steht, an welchen Daten der jeweilige Mitarbeiter sowieso nicht arbeiten muss, welche Tage also frei sind. Nun soll man durch ein Windows Form zusätzliche freie Tage einstellen können, die der Mitarbeiter sich quasi als Urlaub nimmt. Ich habe eine Klasse vom Typ Mitarbeiter erstellt, die eine Liste aus der Klasse Wochentag, und einige Daten zum Mitarbeiter, enthält. Wochentag enthält Tag, Monat und Jahr und einen boolschen Wert der angibt ob der Mitarbeitet arbeitet oder nicht. Ich erstelle in meinem Programm nun eine Liste aus Mitarbeitern und trage bei allen Feiertagen die freien Tage für die Mitarbeiter ein. Ich habe also eine Liste Mitarbeitern, von denen jeder eine Liste von Wochentagen enthält, die das gesamte Jahr repräsentiert. Dort ist außerdem eingetragen ob der jeweilige Mitarbeiter dort arbeiten muss oder nicht. Ich möchte in meinem Formular nun einen Mitarbeiter auswählen können und bei eben diesem die Arbeitszeiten angezeigt bekommen und den boolschen Wert der diese angibt ändern können. Da ich noch sehr neu in C# bin weiß ich nicht wie ich die Liste aus Klassen am besten im Formular darstelle, so das ich den Wert auch ändern kann.

LG

Antwort
von Orsovai, 11

Was für eine Liste hast Du angelegt? System.Collections.Generic.List<T>? Warum legt Du Feiertage in einer Tabelle ab, aber sonstige freie Tage nicht? Das ist inkonsistente Datenhaltung.

Für genaueres wäre es sinnvoll, wenn Du Code posten würdest, am besten in Github oder Pastebin hochladen und verlinken.

Noch eine Anmerkung: Neue GUI Applications würde ich nicht mehr mit Forms erstellen, sondern mit WPF, dem offiziellen Forms Nachfolger.

Kommentar von CrystalixXx ,

WPF würde ich nicht als Nachfolger, sondern eher als Alternative zu WinForms bezeichnen. Nur weil Windows Forms nicht mehr unterstützt wird, heißt das ja nicht, dass man es nicht mehr verwenden darf/sollte. (Im Grunde gibt es einfach nur keine Weiterentwicklung und Fehlerbehebungen mehr - salopp ausgedrückt.)

Sicherlich hat WPF in Sachen GUI einiges mehr zu bieten, vorallem schon wegen des Zwangs der Trennung von Daten und Oberfläche, aber Windows Forms reicht absolut für diese Art von Anwendung.

Antwort
von CrystalixXx, 6

Wozu hat die Klasse Mitarbeiter eine Liste *aller* Tage, bei denen ein Boolean festlegt, ob der Tag ein Arbeits- oder Feiertag/Urlaubstag ist? Du kannst doch in der Liste auch einfach alle Feiertage / Urlaubstage eintragen; spart Speicher und ist übersichtlicher.

Typischerweise wäre dein Anwendungsfall perfekt geeignet für Datenbindung, aber das ist nicht unbedingt ein Thema für Anfänger (auch, wenn es sich leicht umsetzen lässt; aber der Hintergrund, wie und warum sowas funktioniert ist nicht ganz so einfach).

Im Grunde ist deine Anwendung aber sehr simpel (ohne Datenbindung): du hast eine Klasse Mitarbeiter mit Mitarbeiterinformationen, die du direkt in einem Label darstellen kannst. Die einzige "Schwierigkeit" wäre die Liste. Hierfür könnte sich eine Listbox eignen. Einfach über eine Schleife alle Feier- und Urlaubstage als Item der Listbox hinzufügen. Dann noch ein DateTimePicker, wo der gewünschte Urlaubstag eingestellt werden kann und ein Button, der das Datum sowohl in die Liste, als auch die ListBox übernimmt.

PS: Wenn du eine Klasse "Wochentag" hast, dann könntest du ein weiteres Feld hinzufügen, welches Aussage darüber gibt, ob der freie Tag ein Feiertag oder ein Urlaubstag ist, dann könntest du in deiner Anwendung Feiertage anders darstellen lassen als Urlaubstage.

Keine passende Antwort gefunden?

Fragen Sie die Community