我有使用數據綁定在畫布中顯示的項目列表。如何通過綁定在畫布中顯示項目
ItemsToShowInCanvas = new ObservableCollection<ItemDetail>
{
new ItemDetail {Text = "ABC", Top = 10, Left = 200},
new ItemDetail {Text = "DEF", Top = 100, Left = 300},
new ItemDetail {Text = "PQR", Top = 50, Left = 150}
};
ItemDetail是汽車性能的簡單類的文字,top和left值
public class ItemDetail
{
public string Text { get; set; }
public double Top { get; set; }
public double Left { get; set; }
}
當我數據綁定的物品,但會出現在畫布上。但是這些項目不會出現在使用Top和Left屬性提及的位置上。
<Canvas>
<ItemsControl ItemsSource="{Binding Path=ItemsToShowInCanvas}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Text}" Canvas.Top="{Binding Path=Top}" Canvas.Left="{Binding Path=Left}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Canvas>
的ItemsControl的
TextBlock
使用StackPanel的默認itemspanel。您添加的文本塊實際上是添加到堆疊面板,但不添加到畫布。 ItemsControl正在添加到畫布上。嘗試更改項目面板到畫布 – Bathineni感謝您的答案bathineni。我試圖把ItemsPanel作爲Canvas,但它沒有工作。項目開始顯示一個在另一個上。添加ItemContainerStyle工作。的 –
可能重複[WPF:是否有可能在XAML畫布的兒童屬性綁定?](http://stackoverflow.com/questions/889825/wpf-is-it-possible-to-bind-a-canvass-children -property-in-xaml) –