Laden...

[MVVM WPF] [Erledigt] Viewmodelgröße- /struktur - Best Practise?

Erstellt von Killerkrümel vor 6 Jahren Letzter Beitrag vor 6 Jahren 2.485 Views
K
Killerkrümel Themenstarter:in
166 Beiträge seit 2008
vor 6 Jahren
[MVVM WPF] [Erledigt] Viewmodelgröße- /struktur - Best Practise?

Hallo Community,

ich wollte mich mal erkundigen, wie ihr ViewModels mit unzähligen Properties, welche an die View gebunden sind, strukturiert.

  • Ist es eine Möglichkeit, das Viewmodel Partial zu machen?
  • Sollte man in Controls auslagern?

Mich interessiert dabei, ob es eine Art "Königsweg" gibt.

Meine ViewModels sind mittlerweile selten kürzer als >400 Zeilen Code, dabei
haben sie schon gemeinsame Komponenten wie BaseClasses etc.

Aber bei bspw. 4 Listen, mit 10 Textboxen, + Relaycommands kommen alleine an Properties schnell >100 Zeilen Code zusammen.

Viele Grüße, Killerkruemel

B
66 Beiträge seit 2013
vor 6 Jahren

Vererbung!

3.170 Beiträge seit 2006
vor 6 Jahren

Hallo,

Vererbung!

Nein. Komposition.
Verschiedene Sub-ViewModels, von denen jeweils ein Property in den ViewModels, die sie benötigen. Und dann mit entsprechenden Bindings auf der View in die SubVMs klettern.
Das ist wesentlich flexibler.
Die SubVMs dann möglichst logisch so einteilen, dass sie wiederverwendbar sind. Das gleiche gilt für die View und UserControls.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

B
66 Beiträge seit 2013
vor 6 Jahren

Nein. Komposition....

class Composite<T>:Vererbung<T>
3.170 Beiträge seit 2006
vor 6 Jahren

Hallo,

@Blaster: WTF? 🤔
Du hattest einfach nur Vererbung in den Raum geschmissen. Das eignet sich im Bzug auf die Fragestellung überhaupt nicht.
Ach sooo, Du hattest bei der Vererbung sowieso Komposition im Hinterkopf? Dann hättest Du's auch gleich dazuschreiben können :evil:
Was Du jetzt hier mit dem generischen <T> willst, erschließt sich mir im Kontext der Frage auch nicht... aber seis drum. Die Frage ist beantwortet, und ich diskutiere hier nicht weiter.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

K
Killerkrümel Themenstarter:in
166 Beiträge seit 2008
vor 6 Jahren

Vererbung!

haben sie schon gemeinsame Komponenten wie BaseClasses etc.

@Blaster: Reden um des Redens willen?

@MarsStein - Danke zu dem Post mit Composites... das werde ich mir mal anschauen.

212 Beiträge seit 2008
vor 6 Jahren

Für RelayCommands kommt bei mir immer die CommandMap zum Einsatz, dann beibt alles ordentlich.

Gruß
Christoph

K
Killerkrümel Themenstarter:in
166 Beiträge seit 2008
vor 6 Jahren

Dank Commandmap und Compisties ist mein Code nun halbwegs ok bei einer ui mit über 40 Controls . Vielen Dank für die Tips!

212 Beiträge seit 2008
vor 6 Jahren

Fody PropertyChanged kennst du?

Gruß
Christoph

K
Killerkrümel Themenstarter:in
166 Beiträge seit 2008
vor 6 Jahren

Ne.


Fody Propertychanged

Sieht ähnlich mächtig aus wie die Commandmap... Danke!