Cómo mostrar elementos en Canvas mediante Binding

Tengo una lista de elementos que quiero mostrar en Canvas utilizando el enlace de datos.

ItemsToShowInCanvas = new ObservableCollection { 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 es una clase simple con propiedades automáticas para valores de texto, superior e izquierdo

 public class ItemDetail { public string Text { get; set; } public double Top { get; set; } public double Left { get; set; } } 

Cuando relaciono los elementos, aparecen en el canvas. Pero los elementos no aparecen en las posiciones mencionadas utilizando las propiedades Superior e Izquierda.

          

Establezca el ItemsPanel de ItemsPanel en un Canvas y una los contenedores en lugar de TextBlock en DataTemplate