Frage

Hallo, ich mag meine Anwendung in Benutzersteuerelementen, indem diskrete Einheiten von Funktionalität wachsen und dann in einem Raster von ContentControls auf meiner Haupt-Seite mehrere von diesen setzen. Ich muß zwischen den Kontrollen im Netz kommunizieren können.

Ich frage mich, was ist der beste Weg für sie zum Austausch von Daten. Die Anwendung ist ein MVVM-Design, mit jedem Usercontrol sein eigenes Ansichtsmodell hat. Jedes des Hauptformulars ContentControls ‚Inhalt‘ Eigenschaft ist verpflichtet, auf eine Eigenschaft in der Viewmodel Hauptform, die die Usercontrol bietet in angezeigt wird, dass Content.

Zum Beispiel können sagen, ich möchte eine erweiterte Datei-Browser, so dass ich es in ein Usercontrol bauen. Dann habe ich einen Datei-Viewer in einem anderen Usercontrol. Ich möchte in der Lage sein, sie beide zur gleichen Zeit in einem Raster auf dem Hauptformular zu zeigen. Wenn ich eine Datei mit dem Browser wählen, mag ich die ausgewählte Datei in dem Viewer-Usercontrol zur Verfügung steht.

habe ich diesen Entwurf, so dass ich jedes Stück Funktionalität wiederverwenden konnte, wo ich es in der Anwendung benötigt. Ich bin nicht klar, wie man am besten Daten zwischen ihnen zu übertragen, wie es in meinem Design sie nicht bewusst voneinander sind. Irgendein Rat? Dank!

War es hilfreich?

Lösung

Verwenden Sie eine Nachricht Bus. Wenn Sie das MVVM Licht Tookit verwenden, zum Beispiel, verwenden Sie den IMessenger Implementierung in-built. Wenn nicht, dann ist es ziemlich einfach, Ihre eigene Rolle.

Wenn Sie eine Nachricht Bus haben, können Sie für Nachrichten in einer Ansichtsmodell registrieren und veröffentlichen Nachrichten von einem anderen. Es ist eine einfache Art und Weise (entweder 00.59 oder in einer „broadcast“ Mode) über Viewmodel zu kommunizieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top