Como converter a posição X / Y em propriedades Canvas Left / Top ao usar ItemsControl

Estou tentando usar um Canvas para exibir objetos que tenham localização "mundo" (em vez de localização "tela"). A tela é definida assim:

<Canvas Background="AliceBlue">
    <ItemsControl Name="myItemsControl" ItemsSource="{Binding MyItems}">
        <Image x:Name="myMapImage" Panel.ZIndex="-1" />
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Canvas>
                    <TextBlock Canvas.Left="{Binding WorldX}" Canvas.Top="{Binding WorldY}"
                               Text="{Binding Text}"
                               Width="Auto" Height="Auto" Foreground="Red" />
                </Canvas>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</Canvas>

MyItem é definido assim:

public class MyItem
{
    public MyItem(double worldX, double worldY, string text)
    {
        WorldX = worldX;
        WorldY = worldY;
        Text = text;
    }
    public double WorldX { get; set; }
    public double WorldY { get; set; }
    public string Text { get; set; }
}

Além disso, tenho um método para converter entre coordenadas do mundo e da tela:

Point worldToScreen(double worldX, double worldY)
{
    // Note that the conversion uses an internal m_mapData object
    var size = m_mapData.WorldMax - m_mapData.WorldMin;
    var left = ((worldX - m_currentMap.WorldMin.X) / size.X) * myMapImage.ActualWidth;
    var top = ((worldY - m_currentMap.WorldMin.Y) / size.Y) * myMapImage.ActualHeight;
    return new Point(left, top);
}

Com a implementação atual, os itens são posicionados no local errado, porque o local não é convertido em coordenadas da tela.

Como posso aplicar o método worldToScreen nos objetos MyItem antes de serem adicionados à tela?

Editar:

Fiquei um pouco confuso se estou indo no caminho certo, então postei outra pergunta:Como usar o WPF para visualizar um mundo 2D simples (mapa e elementos)

Há uma resposta útil e completa também para esta pergunta

questionAnswers(3)

yourAnswerToTheQuestion