Хорошо, я написал самый простой из ItemsControl, чтобы попытаться объяснить, как эти вещи работают, и, надеюсь, вы сможете адаптировать их к любым элементам данных.
Итак, в ресурсах вашего окна я создал табличку с данными.Это представляет повторяющийся шаг и будет основан на DataItem.В этом случае мой DataItem имеет 2 свойства: DataItemProperty (string) и SelectedItem.SelectedItem будет иметь тот же DataType, который вы планируете показывать в комбинированном списке.
<DataTemplate x:Key="StepTemplate">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<TextBlock Text="{Binding Path=DataItemProperty}" Grid.Column="0"/>
<ComboBox Grid.Column="1" ItemsSource="{Binding Path=DataContext.ItemsToSelectFrom, Mode=OneWay, RelativeSource={RelativeSource AncestorType=Window}}"
SelectedItem="{Binding Path=SelectedItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
</Grid>
</DataTemplate>
В этом примере комбинированный список будет получать список доступных опций из кода позади / viewmodel, а неDataItem, но когда вы что-то выбираете, он обновляет свойство SelectedItem в DataItem.Затем, чтобы показать ваши элементы:
<ItemsControl
Focusable="False"
ItemTemplate="{StaticResource StepTemplate}"
ItemsSource="{Binding Path=Steps, Mode=OneWay}" />
Итак, Steps - это свойство в моем codebehind / viewmodel, которое будет определять количество отображаемых «строк».ItemsControl позволяет легко добавлять повторяющиеся наборы данных без необходимости писать один и тот же xaml несколько раз.Надеюсь, это поможет?