Laden...

[gelöst] MVVM -> Dynamisch Controls hinzufügen

Erstellt von Yeats vor 11 Jahren Letzter Beitrag vor 11 Jahren 1.011 Views
Y
Yeats Themenstarter:in
102 Beiträge seit 2005
vor 11 Jahren
[gelöst] MVVM -> Dynamisch Controls hinzufügen

Hallo,

Ich habe eine List mit Datenbankobjekten. Anhand dieser Liste sollen nun UserControls erzeugt werden.
Dazu habe ich mir ein UserControl mit eigenem ViewModel gebaut. Nun möchte ich die Daten darstellen. Für die Darstellung nutze ich ein ItemControl. Soweit so gut.
Das Problem ist, anhand des Contents der Objekte soll sich die Position ändern, sprich ein Objekt mit einer höheren Priorität soll weiter oben dargestellt werden, außerdem soll der verfügbare Bereich ausgefüllt werden.

Meine Idee dazu war, dass ItemControl in einem Canvas Bereich zu erzeugen und mir die Position der einzelnen Objekte zu berechnen.
Da aber die Breite und Höhe der UserControls variable sein kann, kann ich keine fixen Werte verwenden.

Hat jemand eine Idee dazu wie ich da nun an die Höhe und Breite komme, bevor schon alles gerendert wurde? Oder vielleicht einen anderen Ansatz hierfür?

mfg Yeats

1.552 Beiträge seit 2010
vor 11 Jahren

Hallo Yeats,

Ein ItemsControl ist schon mal die korrekte Wahl, die Elemente werden dann mit dem ItemsTemplate optisch angepasst. Sortiert wird die Liste dann entweder im ViewModel oder direkt in der XAML durch benutzen der CollectionViewSource.

Von der Idee des Canvas bin ich nicht so überzeugt. Es sei denn, du möchtest die Elemente horizontal und vertikal anordnen, dann müsste man sich aber eine Strategie überlegen. Da du dies aber nicht angibst gehe ich davon aus, dass die Liste vertikal ausgerichtet ist und somit das Problem mit dem Sortieren der Liste lösbar ist.

Gruß,
Michael

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

241 Beiträge seit 2010
vor 11 Jahren

Das ItemsControl-Element von WPF unterstütz noch sämtliche Grids. Hier müsste es doch auch möglich sein ein Wrappanel oder was auch immer zu nutzen was bei Width und Height auf 100% geht.

WAGO Kontakttechnik GmbH & Co. KG / Software Notion
Softwareentwicklung

C# .NET with WPF, ASP, Xamarin and Unity
Personal Blog: Development Blog

Y
Yeats Themenstarter:in
102 Beiträge seit 2005
vor 11 Jahren

Hallo,

@xxMUROxx: Musste die Elemente vertikal und horizontal anordnen.
@Sebastian1989101: Bin dann auch auf das Wrappanel gestoßen und es erfüllt meine Anforderungen. Danke