我有ObservableCollection<Class1>
其中Class1
包含x
和y
个位置作为属性。列表可以是任何大小。我有一个ViewModel,它将集合公开为属性。在我看来,我想基于集合生成元素列表,然后根据Class1对象的属性设置它们的x和y位置。
我该怎么做?我知道我可以轻松地将集合控件(如List View)绑定到Collection。但我需要绑定它,元素使用x,y属性将自己定位在画布上。任何想法都赞赏。
答案 0 :(得分:1)
您可以在ItemsControl中使用Canvas作为ItemsPanel,然后将ItemContainerStyle上的Canvas.Top和Canvas.Left属性绑定到X和Y属性:
<ItemsControl ItemsSource="{Binding}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style>
<Setter Property="Canvas.Left" Value="{Binding X}" />
<Setter Property="Canvas.Top" Value="{Binding Y}" />
</Style>
</ItemsControl.ItemContainerStyle>
</ItemsControl>
答案 1 :(得分:0)