Например, вот некоторый код для заполнения списка двумя списками:
<ListBox x:Name="LayoutRoot" Width="200" Height="400" Style="{StaticResource ListStyle}" >
<ListBoxItem>
<ListBox>
<ListBoxItem>11</ListBoxItem>
<ListBoxItem>12</ListBoxItem>
</ListBox>
</ListBoxItem>
<ListBoxItem>
<ListBox>
<ListBoxItem>21</ListBoxItem>
<ListBoxItem>22</ListBoxItem>
</ListBox>
</ListBoxItem>
</ListBox>
Оба внутренних списка отображаются с отображением их содержимого в вертикальном списке. Теперь я знаю, как получить одно поле списка для отображения его содержимого по горизонтали, и я знаю, как это сделать, установив стиль в ресурсе. Что я не могу понять, так это как установить его в ресурсе, который я могу просто применить один раз к внешнему списку, а не каждый раз, когда добавляю другой внутренний список (т.е. применяю его к каждому внутреннему списку).
Вот моя сотая неудачная попытка:
<UserControl.Resources>
<Style x:Key="ListStyle" TargetType="ListBox">
<Setter Property="Template">
<Setter.Value>
<ListBox>
<ListBox.ItemTemplate>
<DataTemplate>
<ListBox>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<toolkit:WrapPanel/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
Если я не дал понять, что я хочу видеть в своем списке, это 11, 12 рядом в первом ряду и 21, 22 рядом во втором ряду.