AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

MVVM - Darstellung im Grid

Ein Thema von t2000 · begonnen am 11. Aug 2021 · letzter Beitrag vom 12. Aug 2021
Antwort Antwort
Benutzerbild von t2000
t2000

Registriert seit: 16. Dez 2005
Ort: NRW
232 Beiträge
 
Delphi 12 Athens
 
#1

MVVM - Darstellung im Grid

  Alt 11. Aug 2021, 15:59
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
Thomas
(Wir suchen eine(n) Entwickler(in) mit Ambitionen später ggf. die Softwarefirma zu leiten)
Aktuell nicht mehr. Aber ab vielleicht 2024/2025 wird das wieder sehr interessant!
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.448 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: MVVM - Darstellung im Grid

  Alt 11. Aug 2021, 19:31
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.
  Mit Zitat antworten Zitat
Benutzerbild von t2000
t2000

Registriert seit: 16. Dez 2005
Ort: NRW
232 Beiträge
 
Delphi 12 Athens
 
#3

AW: MVVM - Darstellung im Grid

  Alt 12. Aug 2021, 09:49
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
Thomas
(Wir suchen eine(n) Entwickler(in) mit Ambitionen später ggf. die Softwarefirma zu leiten)
Aktuell nicht mehr. Aber ab vielleicht 2024/2025 wird das wieder sehr interessant!
  Mit Zitat antworten Zitat
jus

Registriert seit: 22. Jan 2005
344 Beiträge
 
Delphi 2007 Professional
 
#4

AW: MVVM - Darstellung im Grid

  Alt 12. Aug 2021, 12:45
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.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:10 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