Anleitung: Aus Klassen ein ViewModel oder Model erstellen
In dieser Anleitung wollen wir uns einmal anschauen, wie man in Visual Studio ein neues Klassen-Element erstellen kann und anschließend entweder ein ViewModel oder ein Model für die Verwendung in einer Uno Platform Anwendung mit MVUX erstellen kann.
Für die folgenden Schritte, nehmen wir einmal an, die Seite, zu der das zu erstellende Element gehören soll, heißt SamplePage.xaml
Neues Element (für die Verwendung als Model oder ViewModel) hinzufügen:
- Klicke hierzu mit der rechten Maustaste auf den Ordner Presentation rechts im Projektmappen-Browser
- Wähle Hinzufügen aus
- Und klicke dann auf Neues Element

Klassen Element erstellen:
- Wähle in der Liste das Element
Classaus und benenne diese nach folgendem Schema:
Deine Anwendung nutzt:
- Mvvm:
SampleViewModel.cs - Mvux:
SampleModel.cs
- Wähle in der Liste das Element
Klicke nun noch auf Hinzufüge.

Um ein für Mvux passendes Model zu erstellen:
- Füge vor das aktuelle
classeinpartialein. - Ersetze
classdurchrecord - Mit dem Snippet Kürzel
ctorkannst du dir auch direkt automatisch einen (Sekundären-) Konstruktor einfügen lassen.

Note
In Mvux werden Models als record-Typen definiert, um Unveränderlichkeit und wertbasierte Gleichheit zu nutzen, was für die Zustandsverwaltung in Anwendungen vorteilhaft ist.
Die Verwendung von partial ist in Mvux Models unerlässlich, um die vom Framework bereitgestellten Code-Generierungsfunktionen zu ermöglichen, wie z.B. automatische Eigenschaftsänderungsbenachrichtigungen und andere Reduzierungen von Boilerplate-Code.
Caution
Genau wie bei regulären C#-Klassen können auch Mvux Models oder Services primäre Konstruktoren haben, die standardmäßig die Parameter als Eigenschaften des Record-Typs erzeugen.
Ein potenzieller Nachteil dabei ist, dass ein INavigator-Parameter im primären Konstruktor ebenfalls eine Eigenschaft des Models wäre, was normalerweise nicht das ist, was wir als Teil der öffentlichen API unseres Models wollen.
Du solltest bevorzugen, diese Service-definierenden Parameter in einem sekundären Konstruktor zu definieren und sie als private readonly Felder zu behalten.
Note
Du kannst in Uno ViewModels oder Models frei den primären Konstruktor verwenden, beachte jedoch, dass bei Verwendung von Uno.Extensions.Navigation keine Parameter im Page-Konstruktor erlaubt sind.
