Laden...

dynamisches ItemsControl

Erstellt von Cannon vor 11 Jahren Letzter Beitrag vor 11 Jahren 1.673 Views
C
Cannon Themenstarter:in
282 Beiträge seit 2008
vor 11 Jahren
dynamisches ItemsControl

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?

3.430 Beiträge seit 2007
vor 11 Jahren

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

C
Cannon Themenstarter:in
282 Beiträge seit 2008
vor 11 Jahren

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.

3.430 Beiträge seit 2007
vor 11 Jahren

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

C
Cannon Themenstarter:in
282 Beiträge seit 2008
vor 11 Jahren

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?

3.430 Beiträge seit 2007
vor 11 Jahren

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