Nehmen wir an, ich habe ein Programm, das einige Daten in zwei verschiedenen Möglichkeiten darstellen muss. Wenn ich dies mit zwei verschiedenen ViewModels erreichen möchte, scheint es, als ob sie beide die gleiche Instanz des Model-Objekts teilen sollten. Also Wie wird dies in MVVM mit WPF im Allgemeinen erreicht?Wie wird ein Modell normalerweise zwischen ViewModel-Objekten freigegeben?
Eine Möglichkeit, die ich denken kann ist, dass das Ansichtsmodell Konstrukteure eine Instanz des entsprechenden Modells nehmen könnte und alle Kabel in einem Handler für das Application.Startup Ereignis getan werden könnten. Ich kann mich nicht erinnern, das in einem der Beispiele gesehen zu haben, die ich bisher gesehen habe, aber ich habe es vielleicht gerade verpasst.
Bisher scheint es, wie die meiste Zeit, zeigen die Beispiele nur die Viewmodel Erstellen von Instanzen der Modellklassen selbst, die in einigen Fällen funktionieren konnte, aber scheint nicht wie eine gute Lösung für meine Situation, da Jede ViewModel würde eigene Instanzen von Model-Klassen erstellen. Es scheint auch wie das würde die Möglichkeit des Ersetzens des Modells mit einem anderen , die möglicherweise gewünscht werden, wie im Fall der Komponententests zu beseitigen. Ich bin raten, dass ein Abhängigkeits-Injection-Framework oder IoC-Container würde dieses Problem zu beseitigen? Ich habe bisher nur manuelle Abhängigkeitsinjektionen verwendet.
In einem anderen Beispiel schien es wie die Ansicht der Modell-Objekte selbst erstellt und übergeben sie an die Viewmodels, die wie eine so große Idee entweder scheint nicht, da die Ansicht sollte nichts über das Modell kennen ?
Einige Beispiele scheinen nicht einmal Model-Klassen zu haben, nur Views und ViewModels.
Gibt es bessere Möglichkeiten, die ich nicht erwähnt habe?
Zusätzlich, sollte ich ein Dependency-Injection-Framework oder IoC-Container verwenden? Wie bereits erwähnt, habe ich vorher noch keins benutzt und ich dachte, es könnte Overkill für die Größe der Programme sein, an denen ich gerade arbeite. Haben nicht wirklich sehr schwer in irgendeinen Blick hineingeschaut, ich könnte mich irren.
In Ordnung, aber wie wird das normalerweise gemacht? Welche Klasse erstellt normalerweise die Instanz des Model-Objekts und übergibt sie an die entsprechenden ViewModel-Objekte? Das ist die Hauptsache, über die ich im Moment verwirrt bin. – foven