这是我第一次发图片,所以希望效果很好(一张图片抵一千字,我不想打一千字)。但是,下图是我想要实现的目标。
我有一个需要按属性“组”分组的对象集合。我正在使用绑定到为我进行分组的数据源的 CollectionViewSource。
我正在使用 ItemsControl 控件(但可以轻松使用另一个控件)来显示此信息。我可以按属性对信息进行分组,但我希望能够用边框包围整个组。我不想让整个组包围组中的每个项目。
如何完成如下图所示的整个组周围有边框的操作?
![alt text](https://i.stack.imgur.com/Rnq1j.png)
像这样的事情应该可以解决问题。将此作为您的团体风格。您可能想要更多地自定义它,但是您应该能够从此代码片段中获得总体思路。
主要要知道的是您正在绑定到 GroupItem。基本上,GroupItem 有 3 个属性。 (组的)名称、ItemCount(分组中有多少个项目)以及项目本身。
<ControlTemplate TargetType="{x:Type GroupItem}">
<Border BorderBrush="Black" BorderThickness="1" Margin="5">
<StackPanel>
<TextBlock Text="{Binding Name}"/>
<Border BorderBrush="Black" BorderThickness="1" Margin="0,0,0,0">
<ItemsPresenter />
</Border>
</StackPanel>
</Border>
</ControlTemplate>
EDIT:当您对项目集合进行分组时,源不是项目的集合,而是 GroupItems 的集合,其中包含集合中属于该组的项目。这就是为什么x:Type
是组项。除了您希望显示的 GroupItem 的属性之外,此处不需要任何绑定。
你应该把这个放在你的<ItemControl>
XAML 像这样:
<ItemsControl>
<ItemsControl.GroupStyle>
<!-------------- style from above goes here --------------->
<ItemsControl.GroupStyle/>
<ItemsControl/>
here是一篇有关 WPF 中分组的文章,可以帮助您解决问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)