Springe zum Inhalt oder Footer
SerloDie freie Lernplattform

3MVVM

Das sogenannte Model-View-ViewModel Modell beschreibt eine Vorgehensweise, welche unter anderem bei WPF verwendet wird.

Die View ist eine XAML Datei, also zum Beispiel MainWindow.xaml. In dieser Datei wird festgelegt wie die Oberfläche auszusehen hat. Das ViewModel ist hingegen eine C# Quellcode Datei, in der die Logik und die Objekte stecken, wir werden dieses nachher erstellen. Das Model sind die Daten, also ein Objekt.

Beispiel

Nehmen wir an, wir würden eine Kontaktverwaltung schreiben, wo wir Personen mit ihren Anschriften und ihren Kontaktdaten speichern möchten. Wir hätten in der Oberfläche vermutlich eine Liste mit Namen und wenn man eine Person anklickt, würden alle Daten zu dieser Person angezeigt.

Wir würden dann eine View erstellen ContactView.xaml, welche Textfelder für Name, Adresse und Telefonnummern beinhaltet. Die Daten des Kontaktes wären in einer Instanz der Klasse Contact.cs festgehalten, was wir beim MVVM als Model bezeichnen. Die beiden Dateien werden durch das ViewModel ContactViewModel.cs verknüpft. Dieses beinhaltet die Instanz des Kontaktes und diverse Methoden, z.B. zum Speichern oder Löschen des Kontaktes. Die View kann auf das ViewModel zugreifen und so den Namen des Kontaktes anzeigen.

In diesem Programm würden wir also, wenn eine Person in der Liste ausgewählt ist, eine View mit einem ViewModel, welches genau diese Person als Contact beinhaltet, anzeigen.

Ich werde später, wenn wir diese Dinge haben, nochmal darauf zurückkommen, sodass du leichter verstehst, wie genau das Ganze im Programm zusammenwirkt.

Vorteile

MVVM ist extrem nützlich, wenn man in größeren Teams arbeitet. Die Designer können eine Oberfläche entwerfen, während die Programmierer an Models und ViewModels arbeiten. Wenn die "schöne" Oberfläche dann fertig ist, kann sie eingetauscht werden. Es gibt auch noch Vorteile beim Testen und MVVM zeichnet sich durch eine relativ übersichtliche Projektstruktur aus.


Dieses Werk steht unter der freien Lizenz
CC BY-SA 4.0Was bedeutet das?