I MVVM mit Probe erstellt von Josh Smith am Lernen bei http://msdn.microsoft.com/en-us/magazine/dd419663.aspx ich eine Funktionalität von Update in dem vorhandenen Code,MVVM neuen Arbeitsbereich aus anderem Arbeitsbereich zu öffnen (statt Hauptcontrolpanel)
Wie hinzufügen wollte, wenn der Benutzer sieht Daten auf dem Raster von 'Alle Kunden' Benutzer kann bestimmte Datensätze durch Doppelklick bearbeiten, Doppelklick öffnet neue Registerkarte (gleiche Ansicht/Viewmodel, die für neue Kunden verwendet wird). Ich habe keine Ahnung, wie ich es machen soll, muss ich es über das Hauptfenster aufrufen oder es gibt einen anderen Weg.
Thank You All and Happy
Gaurav Joshi Programmierung
Hallo Mark, Vielen Dank für Ihren Beitrag und Entschuldigung, ich schreibe in Kommentaren, fand keine andere Möglichkeit auf Stackoverflow zu antworten. Denkst du, es ist in Ordnung, "workspace" in customerviewmodel it static zu deklarieren und einen neuen Befehl zu erstellen, der einen neuen Arbeitsbereich erstellt und ihn dem mainwindowviewmdodel-Arbeitsbereich hinzufügt. Auf diese Weise muss ich nicht implementieren. Ich möchte nur einige Experteneingaben Vielen Dank Gj – Gaurav
Im Allgemeinen versuche ich, so weit wie möglich von der Statik wegzubleiben, da es dazu neigt, Testbarkeit, Flexibilität und nur allgemeine OO-Ness zu verletzen. Der ganze Sinn von ViewModels ist, dass sie Views modellieren. Sie können kein Modell pro Ansicht verwenden, wenn keine Instanzen des Modells vorhanden sind. Es mag sein, dass es sowieso nur einen Workspace gibt, aber genauso würde ich sagen, dass die Verwendung von Statik gegen die ganze Philosophie von MVVM verstößt. Ich weiß, dass meine Argumentation ein bisschen vage klingt, aber das sind nur allgemeine Überlegungen basierend auf jahrelanger Erfahrung :) –
Mark. Das einzige Problem, das ich in Ihrer Antwort sehe, ist, dass Sie empfehlen, die IsSelected-Eigenschaft in das Kundenmodell einzufügen. Ich denke, es sollte in der CustomerViewModel-Klasse gehen, weil es eine GUI-orientierte Eigenschaft ist, und ein Customer Model-Objekt hat wirklich kein Konzept dessen, was ausgewählt wird bedeutet. –