ItsMe84 Geschrieben 24. Januar 2010 Geschrieben 24. Januar 2010 Hallo zusammen, ich arbeite zurzeit an einer Anwendung zur Verwaltung von Personalakten. Ich habe eine Hauptmask in der ein Teil der Personendaten angezeigt werden. Wenn nun ein Personalmitglied ausgewählt wird, dann öffnet sich eine zweiter Dialog, mit den Details der Person. Das Laden der Daten erfolgt direkt in der GUI. Nun möchte ich das Ganze nach dem MVC-Prinzip aufbauen. Geht das? Wenn ja, kann mir jemand ein Beispiel geben? Vielen Dank! Zitieren
BrauniDeluxe Geschrieben 24. Januar 2010 Geschrieben 24. Januar 2010 Schau mal bei Wiki Ansonsten : Controller : Klasse die auf deine Eingabenreagiert(zB alles was über die GUI läuft .. clicks und co) und diese an das Model weiter gibt Model : Klasse die die Nutzerinformationen hält (bietet Schnittstellen für Controller und Observer) .. sollte das Observer-Pattern implementieren um Observer (GUI) zu benachrichtigen bei Änderungen Observer : Deine GUI .. bzw. beliebige Komponenten die auf Änderungen im Model reagieren dieses also observen Hoffe das reicht erst mal. Gruss Hansi Zitieren
ItsMe84 Geschrieben 24. Januar 2010 Autor Geschrieben 24. Januar 2010 Danke für die Antwort! Ich sollte also die Datenquellen (DataSet, ...) im Model generieren und anschlieβend an die GUI übergeben ... Wie speicher in dann danach die Änderungen? Muss ich die BindingSource im Model halten? Zitieren
BrauniDeluxe Geschrieben 24. Januar 2010 Geschrieben 24. Januar 2010 Naja .. dein Model hat eine Liste von Observern (anfangs leer) Das Modell bietet 3 Observer Methoden an : 1. registerObserver (Observer deinObserver) 2. unregister ... 3. notifyObserver() Eine Gui Komponente (z.B.Eine Form die Nutzerinformationen anzeigt) registriert sich bei dem Modell (registerObserver(die Gui Komponente). Nun erfolgt eine Nutzereingabe (zB. Zeige Nutzerinformation von Paul) Übergabe an den Controller .. setze Benutzer Paul. Der Controller sagt dem Modell das es Paul als aktiven benutzer setzen soll (ruft also eine Methode des Modells auf. In dieser Methode im Model wird am Ende die notifyObserver() Methode aufgerufen, bei der alle registrierten Observer benachrichtigt werden (in dem zB die Gui Komponente die die Nutzerinformation darstellt) Hoffe das ist erst mal klar soweit. Gruss Dennis Zitieren
Argbeil Geschrieben 28. Januar 2010 Geschrieben 28. Januar 2010 Im Prinzip hast du bei deiner Lösung schon eine MVC Lösung, das Dataset ist das Modell, der DataAdapter ist der Controller und das Form ist der View. Jetzt muss du nur noch den Code auf mehrere Klassen verteilen, am besten du fängst mit der Controller-Klasse an und baust für jede mögliche Aktion in der GUI eine Methode in den Conroller. Leider ist das MVC Pattern in WindowsForms nicht sehr gut abbildbar, der View sollte die Möglichen Aktionen des Controllers selbst erkennen und anbieten, sowas kann man zwar lösen, mit Xaml/WPF als Frontend ist es aber deutlich einfacher. Zitieren
lbm1305 Geschrieben 28. Januar 2010 Geschrieben 28. Januar 2010 Hier ein weitere mögliche Inspiration Neue MSDN Webcast-Serie zu ASP.NET Architektur | PGK GmbH Thema: "Pragmatische Webarchitektur" von Patrick A. Lorenz. Diese 3-Schichten Architektur lässt sich sehr gut auf WF-Anwendungen abbilden. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.