Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In dieser Lernprogrammreihe wird veranschaulicht, wie Datenbindung, Abhängigkeitseinfügung und Komponententests mit dem Modell-View-ViewModel (MVVM)-Entwurfsmuster und dem MVVM-Toolkit in einer WinUI 3-App implementiert werden. Es basiert auf dem Lernprogramm zum Erstellen einer WinUI-App und zeigt Ihnen, wie Sie Ihre Ansichtsmodelle aktualisieren, um das MVVM-Toolkit und die Unterschiede zwischen dem MVVM-Toolkit und herkömmlichen MVVM-Ansätzen zu nutzen.
Sie können den Code für dieses Lernprogramm aus dem GitHub-Repository herunterladen oder anzeigen.
In diesem Tutorial erfahren Sie, wie:
- Verstehen Sie die Unterschiede zwischen dem MVVM-Toolkit und herkömmlichen MVVM-Ansätzen.
- Erstellen Sie ein separates Klassenbibliotheksprojekt, um ViewModels und Dienste zu halten, um die Testbarkeit zu verbessern.
- Implementieren Sie die Datenbindung in Ihrer WinUI-App mit dem MVVM-Toolkit.
- Fügen Sie
AllNotesViewModelundNoteViewModelViewmodelle hinzu, um das MVVM-Toolkit zu nutzen. - Integrieren Sie die Abhängigkeitsinjektion zum Verwalten von ViewModels und Diensten.
- Erstellen Sie ein Komponententestprojekt, um Ihre ViewModels und Dienste zu testen.
Voraussetzungen
Zum Durchführen dieses Tutorials benötigen Sie Folgendes:
- Visual Studio 2022 (Version 17.14 oder höher) oder Visual Studio 2026 mit installierter WinUI-Anwendungsentwicklungsworkload .
- Ein Startprojekt, das mit den Schritten im Lernprogramm " Erstellen einer WinUI-App " erstellt wurde. Wenn Sie bereits mit dem Lernprogramm vertraut sind, können Sie den Code herunterladen, um hier aus dem GitHub-Repository zu beginnen.
Was ist das MVVM-Toolkit?
Das MVVM-Toolkit ist eine moderne, einfache und schnelle Bibliothek, mit der Sie das MVVM-Entwurfsmuster in Ihren .NET-Anwendungen implementieren können. Es ist Teil des .NET Community Toolkits und bietet eine Reihe von Tools und Dienstprogrammen, um die Entwicklung von MVVM-basierten Anwendungen zu vereinfachen. Das MVVM-Toolkit enthält Features wie:
-
ObservableObject: Eine Basisklasse, die die
INotifyPropertyChangedSchnittstelle implementiert, sodass Sie Ansichtsmodelle erstellen können, die die Ansicht von Eigenschaftenänderungen benachrichtigen. - RelayCommand: Eine Befehlsimplementierung, mit der Sie UI-Aktionen an Methoden im Ansichtsmodell binden können.
- Messenger: Ein Messaging-System, das die Kommunikation zwischen verschiedenen Teilen Ihrer Anwendung ohne enge Kopplung ermöglicht.
- Attribute: Eine Reihe von Attributen, die Sie zum Generieren von Codebausteinen verwenden können, z. B. Eigenschaftenänderungsbenachrichtigungen und Befehlsimplementierungen.
- Quellgeneratoren: Codegenerierung zur Kompilierzeit, die Boilerplate-Code reduziert und die Leistung verbessert.
- Unterstützung für Abhängigkeitsinjektion: Integrierte Unterstützung für Abhängigkeitsinjektion zum Verwalten des Lebenszyklus von View-Modellen und -Diensten.
Das MVVM Toolkit ist so konzipiert, dass es einfach zu verwenden und in Ihre vorhandenen Projekte integriert werden kann. Es ist kompatibel mit verschiedenen .NET-Plattformen, einschließlich WinUI, WPF und .NET MAUI. Sie können einige Beispiel-Apps im GitHub-Repository oder die Beispiel-App im Microsoft Store auschecken, um zu sehen, wie das MVVM-Toolkit in verschiedenen Szenarien verwendet werden kann.
Wie vergleicht das MVVM-Toolkit herkömmliche MVVM-Ansätze?
Das MVVM Toolkit reduziert die Menge an ViewModel-Codebausteinen und vereinfacht viele Aspekte der Implementierung des MVVM-Entwurfsmusters im Vergleich zu herkömmlichen Ansätzen. Hier sind einige wichtige Unterschiede:
| Merkmal | Herkömmlicher MVVM-Ansatz | MVVM-Toolkit-Ansatz |
|---|---|---|
| Benachrichtigung der Eigenschaftenänderung | Implementieren Sie INotifyPropertyChanged manuell in einer Basisklasse und lösen Sie PropertyChanged Ereignisse für jede Eigenschaft aus. |
Erben Sie von ObservableObject und verwenden Sie die SetProperty-Methode, um PropertyChanged-Ereignisse automatisch auszulösen. |
| Befehlsimplementierung | Implementieren Sie ICommand manuell für jeden Befehl. |
Verwenden Sie RelayCommand, um Befehle mit minimalem Vorlagentext einfach zu erstellen. |
| Nachrichtenübermittlung | Implementieren Sie benutzerdefinierte Messagingsysteme oder verwenden Sie Bibliotheken von Drittanbietern. | Verwenden Sie die integrierte Messenger Klasse für die entkoppelte Kommunikation zwischen Komponenten. |
| Vorlagen-Code | Schreiben Sie sich wiederholenden Code für Eigenschaftenänderungsbenachrichtigungen und Befehlsimplementierungen. | Verwenden Sie Attribute und Quellgeneratoren, um Codebausteine zu reduzieren. |
| Leistung | Es könnte zu einem Performance-Overhead aufgrund von Reflexion und Laufzeitcodegenerierung kommen. | Quellgeneratoren bieten kompilierte Codegenerierung und verbessern die Leistung. |
| Unterstützung der Abhängigkeitsinjektion | Erfordert manuelles Einrichten und Verwalten von Ansichtsmodell-Lebenszyklen. | Integrierte Unterstützung für die Abhängigkeitsinjektion zur Verwaltung von Ansichtsmodelllebenszyklen. |
| Lernkurve | Möglicherweise ist ein tieferes Verständnis von MVVM-Konzepten und -Mustern erforderlich. | Einfacher zu lernen und zu verwenden, mit dem Fokus auf Einfachheit und Produktivität. |
Weitere Hintergrundinformationen zum MVVM-Entwurfsmuster finden Sie unter Windows-Datenbindung und MVVM, Model-View-ViewModel (MVVM) und der Referenzdokumentation für die INotifyPropertyChanged-Schnittstelle.
die WinUI-Notes-App
Die endgültige Anwendung, die Sie in diesem Lernprogramm erstellen, ist eine umgestaltete Version der WinUI Notes-App aus dem Lernprogramm zum Erstellen einer WinUI-App . Mit der App können Benutzer mehrere Notizen erstellen, speichern und laden. Die Benutzeroberfläche der ursprünglichen App bleibt gleich, die aktualisierte Architektur verwendet jedoch das MVVM-Toolkit für die Datenbindung und die Ansichtsmodellverwaltung.
AllNotesPage
NotePage
Tipp
Beim Erstellen von Windows-Apps verweisen Sie häufig auf API-Referenzdokumente und konzeptionelle Dokumente. In diesem Lernprogramm werden Links inline im Text und in Gruppen mit der Bezeichnung "Weitere Informationen in den Dokumenten:" angezeigt. Diese Links sind optional; Sie müssen sie nicht befolgen, um das Lernprogramm abzuschließen. Sie werden für den Fall bereitgestellt, dass Sie notieren möchten, wo Sie die Informationen finden, die Sie benötigen, wenn Sie mit der Erstellung Ihrer eigenen Apps beginnen.
Windows developer