Hallo zusammen,
ich schreibe jetzt schon eine ganze Weile C#-Programme. Dies sind bisher immer Bibliotheken, Dienste etc.. gewesen und große GUI-Kenntnisse sind nie benötigt gewesen.
Nun bin ich über eine ziemlich banale Frage gestolpert:
Wie strukturiert man am besten ein Programm mit grafischer Oberfläche
Bei Delphi und anderen Programmiersprachen habe ich es eigentlich immer so gehandhabt:
Ein Beispiel:
Die in dem GUI wird die Aktion Click ausgelöst. Nun werden die passenden Funktionen im GUIBackend aufgerufen.
Das GUIBackend schaut z.B. welches Element in einem listview selektiert wurde, ordnet dies einem bestimmten Element in einem Array zu, welcher alle zusätzlichen Informationen enthält, dass das Programm benötigt (Dateiname, Größe etc.)
und Ruft tiefere Funktionen im Backend auf.
Die Funktionen für das GUIBackend habe ich immer in eine eigene Klasse gepackt.
Bei C# kann man jedoch ohne Invoke nicht auf die Elemente eines Forms zugreifen.
Ich suche nun nach einer Möglichkeit möglichst ohne Invoke (wegen mono) eine saubere Schnittstelle zwischen GUI und Backend zu erstellen.
Oder ist es in C# gar so gedacht dass man alle GUI-Relevanten Funktionen direkt in die Ereignisse setzt?
Mir kommt das immer irgendwie unsauber vor...
Wie baut ihr eure Programme auf?