Laden...

MVVM Inhalt View

Erstellt von mrbob vor 12 Jahren Letzter Beitrag vor 12 Jahren 893 Views
M
mrbob Themenstarter:in
46 Beiträge seit 2010
vor 12 Jahren
MVVM Inhalt View

Moin moin,

momentan arbeite ich mich in die Thematik MVVM ein.
Dabei kam mir jetzt die Frage auf, was überhaupts in die Code Behind Datei der Xaml Datei rein gehört. Da die Code Behind Datei zum View gehört, sollte nur Logik für das Design enthalten sein.

Nun die Frage, ist das laut Definition vorgesehen das Control Eigenschaften wie Größe, Position oder Farbe in der Code Behind Datei verändert werden kann oder dies auch im View Model geändert werden sollte?

MFG.
Mr. Bob

3.430 Beiträge seit 2007
vor 12 Jahren

Hallo mrbob,

die Codebehind-Datei sollte immer leer bleiben.
Das ViewModel bereitet die ganzen Daten für den View auf.
Alles was dann mit der GUI zu tun hat (Control Eigenschaften usw.) setzst du dann direkt im XAML Code.
Das kannst du alles über Binding miteinander verbinden (über Converter kannst du Typen anpassen usw.)

Gruß
Michael

101 Beiträge seit 2008
vor 12 Jahren

Hallo
Das Thema hat mich auch eine ganze Weile beschäftigt. Es ist natürlich erst mal so, dass in der Codebeside nicht viel implementiert werden soll. Dann kommt man aber schnell zu der Erkenntnis, dass einige Dinge einen unverhältnismäßigen Aufwand bedeuten. Da muss man leider etwas Erfahrung auf in dem Bereich mitbringen. Es gibt auch keine Patentlösung für diese Frage weil das MVVM ein Pattern ist. Wie es interpretiert wird obliegt einem selbst.
Man muss sich immer die Frage stellen warum braucht man diese Schichten in der Architektur. Das Program würde auch funktionieren wenn man kein ViewModel hat. Aber dann kann man nicht automatisiert testen und rechenaufwändige Dinge macht man dann doch lieber im ViewModel oder im Model. Das hängt aber immer von der Problemstellung ab. Es ist auf jeden Fall nicht verboten etwas in das Codebeside zu implementieren. Zum Beispiel das Öffnen von Fenstern oder Teile des Drag´n Drop implementiere ich immer im Codebeside weil die Implementierung im ViewModel keinen Mehrwert hat. Ich halte es für fragwürdig das Öffnen eines Fensters im ViewModel zu implementieren weil man es kann oder weil man das automatisiert testen kann. Ich hoffe ich konnte da etwas helfen.
Gruß

Kombiniere: ...

F
183 Beiträge seit 2009
vor 12 Jahren

Hallo,

die Code-Behind Datei bleibt in der Regel leer. Was du später brauchst sind Converters und AttachedBehaviors. Diese werden aber normalerweise mindestens in separaten Files definiert. Ich persönlich stelle sogar einen Separaten Namespace Bereit (View.Converters und View.AttachedBehaviors).

Grüße