Привязка словаря <string, List <customObject >> к ListBox в WPF

у меня естьDictionary<string, List<WritingMachine>> где ключ - это имя хоста компьютера, который пишет на сервер, а значение - это список объектов WritingMachine (показано ниже):

public class WritingMachine
{
    public string HostName { get; set; }
    public string Program { get; set; }
    public string Login { get; set; }
    public string Server { get; set; }
}

Я пытаюсь привязать словарь к WPF ListBox; отображение имени хоста (ключ словаря) и сводкаWritingMachine список, связанный с этим ключом.

У меня проблемы с доступом к свойствам личностиWritingMachine элементы в списке.

Вот мой XAML:

<ListBox x:Name="MachineListBox" Margin="10" Grid.Column="0" FontFamily="Consolas" ItemsSource="{Binding Path=MachineDictionary}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Vertical" Margin="5">
                <ContentPresenter Content="{Binding Key}" Margin="0,0,4,0"/>
                <ItemsControl ItemsSource="{Binding Value}" Margin="10,0,0,0">
                    <ItemsControl.ItemsPanel>
                        <ItemsPanelTemplate>
                            <StackPanel Orientation="Vertical" />
                        </ItemsPanelTemplate>
                    </ItemsControl.ItemsPanel>
                </ItemsControl>
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

Это приводит к появлению списка, который выглядит следующим образом:

Очевидно, это неправильно, потому чтоWritingMachine элементы списка просто возвращают значение по умолчаниюToString, ПереопределениемWritingMachine«sToString Я могу получить эффект, который я хочу (более или менее):

Но это дерьмовый способ сделать это ... Я хочу иметь возможность получить доступ к свойствам отдельных элементов и расположить их в элементах управления в моемListBox.ItemTemplate с помощьюContent="{Binding Value.Server}" или похожие.

Есть идеи?

Ответы на вопрос(2)

Ваш ответ на вопрос