2016-05-31 8 views
0

Ich habe derzeit ein Ansichtsmodell, so dass sie ein Gitter voller Termine hat. Ich möchte doppelklicken und öffnen Sie meine Kalenderansicht mit dem Bearbeitungsdialog geöffnet für den Datensatz, der ausgewählt wurde. Darf ich fragen, wie würde ich das im MVVM-Stil machen?öffnen EditAppointmentDialog MVVM

Ich suchte im Internet und fand diese RadScheduleViewCommands.EditAppointment.Execute(appointment, this.scheduleView); aber ich habe keinen Zugriff auf das scheduleView Objekt aus dem MVVM. Darf ich fragen, wie ich das machen soll?

Ich glaube, ich kann dies erreichen, wenn ich es zurück zu der Ansicht Relais, aber ich versuche, einen anderen Ansatz zu suchen.

Antwort

1

Das Problem, das Sie haben, ist, dass Sie nicht eine Ansicht von einem View-Modell öffnen können, wie es wird das MVVM-Entwurfsmuster brechen.

Es gibt ein paar Möglichkeiten, wie Sie eine Ansicht aus der View-Modell ohne allzu viel Aufwand öffnen:

  • Implementieren eines Messenger Dienst ein Ereignis an die Ansicht zu veröffentlichen, wie MVVMLight tut.
  • Gerade aufsummieren eine Click Event-Handler auf dem Knopf und öffnen den Blick in den Code hinter (Es ist immer noch Code anzeigen, nachdem alle).

jedoch meine bevorzugt Methode ist eine ICommand oder RelayCommand zu verwenden. Ich habe eine repository on GitHub geschrieben, die zeigt, wie dies zu erreichen ist.