Пытаюсь реализовать список внутри списка, что-то типа такого(одного уровня вложенности мне хватит):
Хочется отметить, что сам список заполняется по нажатию кнопки. С помощью ListBox так и не получилось, через bind(делаю программно через ItemSource) удается только один корневой уровень. На XAML выглядит так:
<ListBox x:Name="listObjects" Margin="10,10,779,133" SelectionMode="Multiple">
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="Margin" Value="5"/>
<Setter Property="Padding" Value="5"/>
<Setter Property="Background" Value="LightSteelBlue"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<Border x:Name="brd" Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<CheckBox Focusable="False" Margin="{TemplateBinding Padding}" Foreground="{TemplateBinding Foreground}"
IsChecked="{Binding IsSelected, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}">
<ContentPresenter/>
</CheckBox>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="LimeGreen"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="BorderBrush" Value="Black"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
Соответственно один уровень добавляется условно так(не буду вдаваться в подробности заполнения списка):
private void Load_Click(object sender, RoutedEventArgs e)
{
var list = new List<string>();
ls.Add("qwerty");
ls.Add("asdfgh");
listObjects.ItemsSource = list;
}
Вопрос, собственно, заключается в том, как реализовать многоуровневый список с привязкой к коллекциям. Готов разобраться и переписать заново, если поможете своим кодом и т.п.

