Entwickler-Ecke
WPF / Silverlight - Konstruktor vom ViewModel; In Xaml oder Code-Behind
Oppi35 - Fr 30.09.11 17:22
Titel: Konstruktor vom ViewModel; In Xaml oder Code-Behind
Hallo Zusammen,
ein ViewModel kann direkt im XAML Code instanziert werden. Dies hat m.E. den großen Vorteil, dass man Bindings schon während der Entwurfszeit am Rechner sieht.
Häufig ist es bei mir allerdings so, dass es sinnvoll ist, dass ViewModel mit einem parametisierten Konstruktor zu versehen. Ich übergebe hier z.B. einen DataProvider (für Test bzw. Produktion). Dies macht nach meinem aktuellen Kenntnisstand eine Instanzierung in XAML so gut wie unmöglich.
Also muss ich je nach Implemenierungsart des MVVMs z.B. in der Code-Behind Datei mein ViewModel instanzieren und hier den DataContext setzen. Nur sehe ich jetzt zur Entwurfszeit leider keine Bindings mehr in meiner View.
Kann mir jemand einen Tip geben, wie ich ein ViewModel mit parametisiertem Konstruktor am sinnvollsten instanziere? Oder wie ich einen param. Konstruktor umgehen kann?
Viele Grüße
Frank.
Oppi35 - Fr 30.09.11 20:46
Vielen Dank für Deine Hilfe. Leider gibt es unter den zahlreichen Optionen keine, die sich mit einem parametisierten Konstruktor im ViewModel beschäftigt.
Letztendlich bleibt meine Frage offen, wie ich ein ViewModel mit param. Konstruktor so einbinden kann, dass ich zur Entwurfszeit sehe, ob das Binding funktioniert. Aber unanbhängig davon war es interessant, die Seite zu lesen.
Viele Grüße
Frank
gfoidl - Fr 30.09.11 22:05
Hallo,
| Zitat: |
unter den zahlreichen Optionen keine, die sich mit einem parametisierten Konstruktor im ViewModel beschäftigt.
|
in den Beispielen wurde das VM nur mit dem Standardkonstruktor instantiiert, aber es sind auch Konstruktoren mit Parametern möglich.
| Zitat: |
bleibt meine Frage offen, wie ich ein ViewModel mit param. Konstruktor so einbinden kann, dass ich zur Entwurfszeit sehe, ob das Binding funktioniert
|
Diese Frage hast du auch erst jetzt konkret gestellt ;-)
Hierzu kann ich dir keine Lösung für die Entwurfszeit nenne, da ich - wie viele andere auch - die View einfach in XAML runtertippen ohne den Designer. Somit werden Bindungsfehler erst zur Laufzeit bemerkbar. Hier hilft das Debug-Ausgabefenster, Snoop, etc.
mfG Gü
Kha - Sa 01.10.11 00:04
Oppi35 hat folgendes geschrieben : |
| Ich übergebe hier z.B. einen DataProvider (für Test bzw. Produktion). |
Über Dependency Injection sollte sich das in einen parameterlosen Konstruktor und Properties umformen lassen. Selbst habe ich das noch nicht versucht, aber MEFedMVVM beispielsweise benutzt DI selbst zur Instanzierung der ViewModels und besitzt anscheinend Design Time Support.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!