Здравствуйте!
Помогите, пожалуйста, разобраться с ItemsControl в WPF.
Я не могу понять, умеет ли ItemsControl управляться с другими контролами так же, как это делает ListBox.
Поясню на примере. Есть такой XAML (пример №1):
<ListBox>
<ListBox.Items>
<Button>Button #1</Button>
<Button>Button #2</Button>
<Button>Button #3</Button>
</ListBox.Items>
</ListBox>
В окне он отображается таким образом:
Теперь, допустим, я хочу чтобы каждая кнопка отображалась в рамке, и при этом не желаю менять список элементов ListBox.
Это решается достаточно просто переопределением ItemContainerStyle (пример №2):
<ListBox>
<ListBox.Items>
<Button>Button #1</Button>
<Button>Button #2</Button>
<Button>Button #3</Button>
</ListBox.Items>
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<Border Background="LightCoral" Padding="4" Margin="4">
<ContentPresenter/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
Получается примерно такая картина:
Теперь попробуем заменить ListBox на его предка — ItemsControl.
XAML, аналогичный примеру №1 будет выглядеть так:
<ItemsControl>
<ItemsControl.Items>
<Button>Button #1</Button>
<Button>Button #2</Button>
<Button>Button #3</Button>
</ItemsControl.Items>
</ItemsControl>
И он прекрасно отобразится в окне:
Вопрос заключается в том, как мне поместить каждую из кнопок в ItemsControl в Border. Т.е. как повторить, то, что уже было сделано в примере №2, но с использованием ItemsControl, а не ListBox.
Буду признателен за помощь.