Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...
Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...
Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
4.2 Einführung in die Windows Presentation Fo<strong>und</strong>ation 83<br />
das assoziierte Objekt gespeichert wird. Zusätzlich dazu können einem Trigger mehrere<br />
Actions zugeordnet werden. Dadurch kann der Trigger die Veränderungen vom<br />
assoziierten Objekt beobachten. Sobald ein definierter Zustand von dem assoziierten<br />
Objekt erreicht wird, werden die Invoke-Methoden der Actions ausgeführt.<br />
Behavior bilden eine Kombination aus Triggern <strong>und</strong> Actions. Sie beobachten ein<br />
Element <strong>und</strong> führen gleichzeitig eine Action aus, sobald ein bestimmter Zustand erreicht<br />
worden ist. Dazu muss auch hier das assoziierte Objekt angegeben werden, durch die<br />
AssociatedObject-Property.<br />
4.2.3 Das Model-View-ViewModel Muster<br />
Dieser Abschnitt basiert auf dem Artikel Das Model-View ViewModel-Pattern für WPF-<br />
Anwendungen von Thomas Huber <strong>und</strong> Christoph Pletz [HP07].<br />
Das Model-View-ViewModel (MVVM) Softwaremuster ist eine abgewandelte Variante<br />
des Model View Controller (MVC) Musters, das speziell auf WPF angepasst wurde.<br />
Beim MVC Muster wird eine Client-Software in drei Komponenten geteilt: Das Model,<br />
welches die Daten bereitstellt, der View, der die Daten dem Benutzer anzeigt, <strong>und</strong><br />
der Controller, der die Verarbeitung der Nutzerinteraktion <strong>und</strong> des Programmablaufs<br />
übernimmt. Abbildung 4.5 zeigt die Beziehungen der drei Komponenten zueinander.<br />
Dabei besitzt das Model keinerlei Wissen darüber, wie <strong>und</strong> ob es angezeigt wird – es<br />
muss nur melden, wenn es sich verändert hat. Die Trennung von Controller <strong>und</strong> View<br />
ist in der Praxis jedoch oft sehr schwer. Oft müssen die Daten noch für die Ausgabe<br />
formatiert werden oder bei der Eingabe neuer Daten müssen diese erst verifiziert werden.<br />
Abbildung 4.5: Abhängigkeitsbeziehungen im MVC Muster [Kle07].<br />
Bei dem MVVM Muster bleibt die Rolle des Models <strong>und</strong> des Views im Prinzip gleich.<br />
Dabei greift der View nicht direkt auf das Model, sondern bekommt diese Daten –<br />
eventuell aufbereitet – vom ViewModel. Eine WPF Besonderheit ist, dass der View<br />
möglichst komplett in XAML, also rein deklarativ, erstellt wird. Das ViewModel ist eine