Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
dynamisches ItemsControl
Cannon
myCSharp.de - Member



Dabei seit:
Beiträge: 282

Themenstarter:

dynamisches ItemsControl

beantworten | zitieren | melden

Ich habe hier ein UserControl, was an Daten gebunden ist. Nun möchte ich allerdings dieses UserControl so oft (horizonal nebeneinander) anzeigen lassen, wie mir meine selektierten Daten zur Verfügung stehen. Sprich ich habe hier eine CollectionView mit meinen Datensätzen, wobei ich jeden Datensatz an ein eigenes UserControl anbinden möchte. Problem bei der Sache ist .. Kann ich das mit dem ItemsControl ggf. in Verbindung mit einem StackPanel lösen? Und wenn ja wo wäre der Ansatz in XAML? Es ist ja relativ einfach eine bestimmte Anzahl in ein StackPanel einzubinden, da ich dann ja nur für jedes UserControl ein Property zu schreiben bräuchte. Aber da mir die Anzahl nicht bekannt ist, stellt sich die Frage, wie ich das lösen kann?
private Nachricht | Beiträge des Benutzers
michlG
myCSharp.de - Experte

Avatar #avatar-2909.png


Dabei seit:
Beiträge: 3652
Herkunft: Naturns - Südtirol - Italien

beantworten | zitieren | melden

Hallo Cannon,

dazu kannst du das ItemsControl verwenden.
Als ItemsPanelTemplate setzt du ein StackPanel mit Orientation="Horizontal" und als ItemsTemplate setzt du ein UserControl welches die Daten anzeigt.

Hier ein Beispiel dazu: WPF ItemsControl Example

Grüße
Michael
private Nachricht | Beiträge des Benutzers
Cannon
myCSharp.de - Member



Dabei seit:
Beiträge: 282

Themenstarter:

beantworten | zitieren | melden

Gutes Beispiel. Habe ich soweit auch umgesetzt. Also lag ich auch nicht so falsch. Allerdings ist noch die Frage, woran binde ich das DataTemplate, wenn die ItemsSource eine ViewCollection ist? Ans CurrentItem funktioniert nicht bzw. meine UserControl im ItemsControl muss ja über irgendein Property die Info bekommen, welche Daten angezeigt werden sollen.
private Nachricht | Beiträge des Benutzers
michlG
myCSharp.de - Experte

Avatar #avatar-2909.png


Dabei seit:
Beiträge: 3652
Herkunft: Naturns - Südtirol - Italien

beantworten | zitieren | melden

Hallo Cannon,

ich verstehe jetzt nicht ganz was das Problem ist.
Der DataContext deines DataTemplates müsste eigentlich doch automatisch auf das Element in der ViewCollection gebunden werden.
Die einzelnen Properties kannst du dann einfach binden.

Grüße
Michael
private Nachricht | Beiträge des Benutzers
Cannon
myCSharp.de - Member



Dabei seit:
Beiträge: 282

Themenstarter:

beantworten | zitieren | melden

Es geht ganz plötzlich. Ich weiß zwar nicht,w as ich verändert habe, aber es geht. Mir war auch klar, dass der DataContext automatisch gebunden wird. Allerdings ist mir noch nicht ganz klar, wie das mit der Collection funktioniert. Wird die vom ItemsControl automatisch iteriert?
private Nachricht | Beiträge des Benutzers
michlG
myCSharp.de - Experte

Avatar #avatar-2909.png


Dabei seit:
Beiträge: 3652
Herkunft: Naturns - Südtirol - Italien

beantworten | zitieren | melden

Hallo Cannon,

ja genau. In deinem ItemTemplate brauchst du dich nicht darum zu kümmern welches Element das ist.
Denn das ItemsControl erstellt automatisch für jedes Element automatisch das Template und setzt den DataContext auf das passende CollectionItem

Grüße
Michael
private Nachricht | Beiträge des Benutzers