Я пытаюсь создать собственный ListBox. Получает список с тремя свойствами:
SubjectName
Проблемы
AverageScore
Свойство Задачи - это еще один список, содержащий несколько классов Задач. Это шаблон данных, который я создаю.
<DataTemplate x:Key="SubjectDataTemplate">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions>
<StackPanel Margin="5">
<StackPanel Orientation="Horizontal" TextBlock.FontWeight="Bold" >
<TextBlock Text="{Binding Path=ProblemNumber, FallbackValue=ProblemNumber}" />
<TextBlock Text="{Binding Path=SubjectName, FallbackValue=SubjectName}" Padding="3,0,0,0"/>
</StackPanel>
<TextBlock Text="{Binding Path=AverageScore, FallbackValue=AverageScore}" />
<ItemsControl ItemsSource="{Binding Problems}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<StackPanel Background="Aqua" Orientation="Vertical" Margin="5">
<Rectangle Fill="Red" Height="20" Width="20" />
</StackPanel>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
<!--<TextBlock Text="{Binding Path=Role, FallbackValue=Role}" />-->
</StackPanel>
</Grid>
</DataTemplate>
Но у меня возникла проблема при попытке показать данные о проблемах. Я пытаюсь показать каждый элемент из списка «Проблемы» на панели стека с горизонтальной ориентацией, но каждая панель стека отделяется.
![enter image description here](https://i.stack.imgur.com/uxocp.png)
Мне нужно поместить красные прямоугольники внутри элемента управления стека. Например, десять прямоугольников из Таблиц времени должны находиться в одной панели стека.
ОБНОВЛЕНИЕ 1:
Примерно так:
![enter image description here](https://i.stack.imgur.com/BVFRB.png)
Согласно графику, первая панель стека (фоновый аква) должна содержать 10 красных прямоугольников.
ОБНОВЛЕНИЕ 2:
Я проверяю показ данных из проблемы в textBlock, и это работает:
<ItemsControl ItemsSource="{Binding Problems}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding IsCorrect}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" Background="Gainsboro" Margin="5" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>