Ich habe gerade angefangen, M-V-VM für eine WPF-Anwendung zu untersuchen. Bis auf dieses spezielle Problem macht alles bisher Sinn ...M-V-VM Designfrage. Aufruf von ViewModel
Ich habe ein ViewModel Ich rufe Suche an. Dieses ViewModel bindet an ein Datagrid und listet Ergebnisse von Elementen auf. Jetzt habe ich einen Befehl, der eine andere Ansicht, die Details des Einzelteils bringen muss.
Die Logik zum Anzeigen einer anderen Ansicht in der Suchansicht scheint nicht richtig zu sein, sie ist überhaupt nicht testbar.
Hier ist mein Viewmodel-Implementierung, die ...
public class SearchViewModel
{
public void SelectItem()
{
// I want to call the DetailsView from here
// this seems wrong, and is untestable
var detailsView = new DetailsView();
detailsView.Show();
}
}
Wo die Logik eine Ansicht von einer Viewmodel-Methode nicht prüfbar ist in diesem Muster gehen zu zeigen?
Danke für die Hilfe, das scheint wie eine praktikable Lösung. Auch wenn ich die Logik zum Einrichten der Ansicht nicht Unit-testen kann (Festlegen von Eigenschaften, die mit dem injizierten ViewModel interagieren), lassen sich die ViewModels testbar, wo sich der Großteil der Logik befindet. – Jab
Wenn ein einfaches Ereignis die Ansicht öffnet, ist das gut. Aber was, wenn das Ereignis mehr Aktion, Datenabruf, Verifizierung benötigt. Würdest du das Zeug auch in den Blick nehmen? Oder eine andere Ebene der Indirektion schaffen? – Sam
In der Tat. Die gleiche Frage wie Sam hier drüben. Was ist, wenn Sie vor dem Öffnen der Ansicht mehr Daten oder Logik benötigen? (Bsp. wenn Eigenschaft x = 1 offene Sicht 1, wenn Eigenschaft x = 2 andere Sicht öffnen) –