我有列表框,用户可以分组任意数量的项目。我想在分组项目周围显示一个红色矩形。我尝试使用装饰,但似乎装饰可以在单一控件上绘制。是否有任何更简单的方法来实现它,可能只在xaml。
<ListBox ItemsSource="{Binding MyList, RelativeSource={RelativeSource AncestorType={x:Type Window}}}">
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border Height="50" Width="100" Background="Yellow">
<TextBlock Text="{Binding item}"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
答案 0 :(得分:0)
正如XAMIMAX所说。您需要为GroupItem编写样式。请参阅下面的代码。
<ListBox.GroupStyle>
<GroupStyle>
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<Border BorderBrush="Red" BorderThickness="2" >
<StackPanel>
<ContentPresenter/>
<ItemsPresenter />
</StackPanel>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
</GroupStyle>
</ListBox.GroupStyle>