Оба эти подхода будут работать при условии, что словарь полностью заполнен на момент назначения.Учитывая это в вашем пользовательском контроле: -
<ListBox x:Name="lst" />
, тогда этот код: -
var data = new Dictionary<int, string>();
data.Add(1, "Hello");
data.Add(2, "World");
lst.ItemsSource = data.Values;
Отобразит две строки "Hello" и "World".
Дайте ListBox шаблон: -
<ListBox x:Name="lst">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" >
<TextBlock Text="{Binding Key}" Margin="5" />
<TextBlock Text="{Binding Value}" Margin="5" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Теперь вы можете назначить сам словарь: -
lst.ItemsSource = data;
В списке отображается набор пар ключ-значение.