none
Binding der Item-Position in einem Canvas / ListBox

    Frage

  • 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

    Samstag, 26. Januar 2013 10:22

Alle Antworten

  • 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:06
  • 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

    Sonntag, 27. Januar 2013 11:13
  • 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.

    Montag, 18. Februar 2013 17:44