Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi MVVM - Darstellung im Grid (https://www.delphipraxis.net/208532-mvvm-darstellung-im-grid.html)

t2000 11. Aug 2021 14:59

MVVM - Darstellung im Grid
 
Hallo Leute,

ich hab ne kurze Frage beim Design von MVVM. (mein eigenes MVVM)

Ich habe ein (hoffe doch) gutes Konzept für alle möglichen Views gefunden.
Die Felder in den Views werden an das ViewModel gebunden, dieses verwaltet für jedes Feld ein Feld/Value Objekt usw und die Daten liegen im Model

Nun habe ich eine Liste. Die Liste wurde aus der Datenbank geladen und liegt nun im Model bereit. TList<TMyObject>
Die Daten sollen in einem beliebigen Grid angezeigt werden. Normalerweise werden die Daten ja in einem Event "OnGetData" für jede Zelle geholt (ja, es gibt auch Gitter, die Daten speichern. Haben wir aber nicht).

Wie würdet ihr das abbilden? Einfach aus der "OnGetData" vom Grid im View einen Aufruf ins Viewmodel, welches den Aufruf direkt zum Model weiterleitet? Jedes Mal neu?
Sollte man das nicht optimieren, da ja "normalerweise" im Model eine Liste von Objekten liegt und im Gitter ein Objekt eine ganze Zeile mit mehreren Zellen darstellt. (Zugriff auf das Zeilen-Objekt. Könnte ja recht groß sein)
Oder macht man für solche Listen/Gitter ganz andere Mechanismen?

Die Entwicklung soll natürlich Framework ( und daher Gitter-) Neutral sein.

VG
Thomas

freimatz 11. Aug 2021 18:31

AW: MVVM - Darstellung im Grid
 
Wir haben view items für Listen. Diese verwenden wir jedoch in der Regel für Klapplisten.

Direkt ans Module leiten wir nie weiter. Alle Daten werden im Viewmodel zwischengespeichert.

Aus Sicht der Anwendung würde ich das Grid an eine passenden view item binden. Wie das Binding dann funktioniert ist der UI egal.

Intern kann das dann mit OnGetData funktionieren und die Daten dann holen.

t2000 12. Aug 2021 08:49

AW: MVVM - Darstellung im Grid
 
Eine View-Item-List im Viewmodel vorhalten.
Ich glaube, das war der richtig Hinweis.
So werde ich die Sache mal angehen.

danke für Hinweise. Gerne auch weitere :)

jus 12. Aug 2021 11:45

AW: MVVM - Darstellung im Grid
 
Hallo,
du könntest dir auch die TreeViewPresenter Komponente aus DSharp von Stefan Glienke anschauen. Ich benutze sehr gerne diese Komponente für VirtualStringTree Binding in MVVM und binde einfach die IObjectList vom ViewModel mit der View, oder genau genommen binde ich die ItemsSource Property der TreeViewPresenter mit einer IObjectList vom ViewModel. Das Coole an dieser Komponente ist, dass die nicht nur StringGrid und TreeView bindet sondern auch VirtualStringTree. Ein Beispiel für die Verwendung mit verschiedenen TreeView Komponenten findest du im /Samples/VirtualTreeviewSample.dproj.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz