Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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!

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

  • Autor

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?

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

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.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.