I have a listbox I'm trying to databind to with a "metro" app. Here is my xaml:

```
    <ListBox x:Name="ImagesList" Margin="40" Grid.Row="1">
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding Key}" />
            </StackPanel>
        </DataTemplate>
    </ListBox>

```

And I've created a source:

```
        List<KeyValuePair<string, string>> items = 
            new List<KeyValuePair<string, string>>();

        items.Add(new KeyValuePair<string, string>("a", "a"));
        items.Add(new KeyValuePair<string, string>("b", "b"));
        items.Add(new KeyValuePair<string, string>("c", "c"));
        this.ImagesList.ItemsSource = items;

```

I'd expect this to create a list of text in my app a, b and c

However instead I'm getting the following text for each element I've bound:

```
System.Runtime.InteropServices.CLRKeyBaluePairOmpl'2[System.String, System.String]

```

It looks like it's displaying the fullname of the type I'm binding... what am I doing wrong?