Binding der Item-Position in einem Canvas / ListBox
-
Samstag, 26. Januar 2013 10:22
Hi,
ich habe eine ListBox, deren ItemsPanelTemplate ein Canvas ist. Die Elemente werden über ein ViewModel und ItemsSource gebunden und werden korrekt angezeigt. Allerdings bekomme ich es nicht hin, die Elemente anhand ihrer Eigenschaften zu positionieren. In WPF würde man das ja in etwa so machen:
<ListBox.ItemContainerStyle> <Style TargetType="ListBoxItem"> <Setter Property="Canvas.Left" Value="{Binding X}"/> <Setter Property="Canvas.Top" Value="{Binding Y}"/> </Style> </ListBox.ItemContainerStyle>Allerdings funktioniert das nicht. Die Elemente sind immer an (0, 0), obwohl die Quell-Eigenschaft nicht 0 ist. Wenn ich als Wert eine Konstante angebe, werden die Objekte korrekt ausgerichtet. Nur das Binding funktioniert irgendwie nicht.
Ich bin schon auf diesen SO-Artikel gestoßen, der mir aber auch nicht weiterhilft. Hat schon mal jemand das obige Szenario in WinStore-Apps umgesetzt bekommen?
Nico
Alle Antworten
-
Sonntag, 27. Januar 2013 11:06
Hi,
kann dir leider nicht direkt helfen, aber kann es eventuell sein, dass das aussen herum liegende Layout-Container-Object dich an diese Position presst?!
LG, Tobi
Best Regards. When you see answers and helpful posts, please click Vote As Helpful, Propose As Answer, and/or Mark As Answer. This helps us build a healthy and positive community.
-
Sonntag, 27. Januar 2013 11:13
Ich weiß gerade nicht genau, was du meinst. Das ItemsPanel ist ein Canvas, das genügend Platz hat. Und den ItemContainer habe ich ja versucht, mit dem angegebenen Style zu verändern. Was auch funktioniert, wenn er kein Binding beinhaltet. Die Items selbst haben keine explizite Position und befinden sich dann an der oberen linken Ecke des ItemContainers.
Nico
-
Montag, 18. Februar 2013 17:44
Hi,
hast du eine Loesung gefunden?
LG, Tobi
Best Regards. When you see answers and helpful posts, please click Vote As Helpful, Propose As Answer, and/or Mark As Answer. This helps us build a healthy and positive community.

