actionbrowser.com
WPF MVVM Schritt für Schritt (Windows Presentation Foundation) Ich habe ungefähr drei Jahre Erfahrung. Ich möchte etwas über WPF und das MVVM-Muster lernen. Es gibt viele Links zu Artikeln auf dieser Seite, aber ich bin ein wenig überwältigt. Wäre ein vernünftiger Ansatz für einen Anfänger, mvvm für eine Weile zu vergessen und schnell ein bisschen WPF zu lernen, und dann zu MVVM zurückzukehren? Ich hatte heute ein Blatt durch Application = Code + Markup - Charles Petzold in Arbeit, es scheint MVVM nicht zu erwähnen (zumindest nicht im Index). Ich war ziemlich überrascht, als ich dachte, MVVM sollte die "Verkehrssprache" von WPF sein? Außerdem habe ich gerade angefangen, in einer neuen Firma zu arbeiten, und sie verwenden MVVM mit WinForms. Ist jemand schon einmal darauf gestoßen? Kann jemand ein Buch empfehlen, das mir sowohl WPF als auch MVVM beibringt? Das MVVM-Muster ist ein beliebter Ansatz zur Vereinfachung und Entwirrung von WPF-Anwendungen, aber nicht der einzige. Ich habe festgestellt, dass TMTOWTDI (es gibt mehr als einen Weg, dies zu tun) definitiv für WPF gilt.
Dieses Repository enthält Beispiel-Code für eine einfaches Todo-Listen Anwendung,
die mittels Model-View-ViewModel-Pattern und JavaFX geschrieben wurde. Dabei wurde die Methodik Test-Driven-Design angewandt. Dieses Beispiel wurde für eine Vortragsreihe von Manuel Mauky und Max Wielsch
bei deutschsprachigen Java-User-Groups entwickelt. Der Vortrag wurde freundlicherweise von der JUGH in Kassel aufgezeichnet und kann hier auf Youtube angeschaut werden. Im folgenden findet sich eine Schritt-für-Schritt-Anleitung in Stichpunkt-Form,
die die wesentlichen Schritte zur Entwicklung der Anwendung enthält. Zum Nachvollziehen kann ebenfalls die Commit-Historie in diesem Repository angeschaut werden. Schritt für Schritt Anleitung
Feature: Items hinzufügen
fxml-Datei mit Scenebuilder bauen
Starter-Klasse bauen, die die FXML lädt und anzeigt. ViewModel Schnittstelle festlegen (Properties und Action-Methoden)
void addItem()
StringProperty newItemText()
ObservableList
Lösung: Es ist nichts wert, MVVM-Frameworks zu verwenden, wenn Sie nicht wissen, was darin vor sich geht. Gehen wir also Schritt für Schritt vor und erstellen Sie Ihre eigene ViewModelBase-Klasse. ViewModelBase ist für alle Ihre Ansichtsmodelle eine gemeinsame Klasse. Verschieben wir die gesamte allgemeine Logik in diese Klasse. Ihre ViewModels sollten implementieren INotifyPropertyChanged (verstehst du warum? ) public abstract class ViewModelBase: INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) PropertyChanged? (this, new PropertyChangedEventArgs(propertyName));}} das [CallerMemberName] -Attribut ist nicht erforderlich, aber Sie können Folgendes schreiben: OnPropertyChanged(); Anstatt von OnPropertyChanged("SomeProperty");, so vermeiden Sie String-Konstanten in Ihrem Code. Beispiel: public string FirstName set _firtName = value; OnPropertyChanged(); //instead of OnPropertyChanged("FirstName") or OnPropertyChanged(nameof(FirstName))} get{ return _firstName;}} Bitte beachte, dass OnPropertyChanged(() => SomeProperty) ist nicht mehr zu empfehlen, da haben wir nameof Operator in C# 6.
Wir brauchen ein Container-Steuerelement, mit dem wir unsere Ansichten platzieren und navigationsweise wechseln können. Zu diesem Zweck müssen wir ContentControl in unsere einfügen. Wir werden die content-Eigenschaft verwenden und diese an eine ViewModel-Referenz binden. Definieren Sie nun die Datenvorlagen für jede Ansicht in einem Ressourcenwörterbuch. Es folgt die Datei Beachten Sie, wie jede Datenvorlage einen Datentyp (den ViewModel-Typ) einer entsprechenden Ansicht zuordnet.
E-Book kaufen – 18, 99 £ Nach Druckexemplar suchen In einer Bücherei suchen Alle Händler » 0 Rezensionen Rezension schreiben von Steffen Steinbrecher Über dieses Buch Allgemeine Nutzungsbedingungen Seiten werden mit Genehmigung von John Wiley & Sons angezeigt. Urheberrecht.
Viele Tutorials, die ich zum Thema MVVM gelesen habe, funktionieren teilweise nicht, erklären Dinge nicht richtig, etc. Dies ist nun also mein Versuch, MVVM verständlich zu erklären. Das ganze werde ich auf C# 4. 0 und Visual Studio 2010 aufbauen. Was ist nun MVVM und wo liegt der Unterschied zu MVC oder MVP? Model View Controller Model View Presenter Model View ViewModel Allen gemeinsam ist das M(odel) und ein V(iew). Die Logik liegt bei MVC im C(ontroller), bei MVP im P(resenter) und bei MVVM im V(iew)M(odel). Soweit sind alle schonmal recht ähnlich. Der Unterschied offenbart sich, sobald man die Assoziationen anguckt. Bei MVC steuert der Controler sowohl View, als auch Model. Bei MVP bedingt sich nun alles gegenseitig. Das Besondere an MVVM ist nun, dass das ViewModel nicht unsere View steuert, sondern lediglich Daten für diese bereitstellt. Das ganze Funktioniert über eine Technik, die sich Data Binding nennt. Dadurch ist es möglich, eine sehr lose Kopplung zwischen den Schichten zu bekommen.