如果您有Programming WPF的副本,请跳到第 221 页。如果没有,我会总结一下(以我无能的方式)
首先,您不需要手动对 Person 对象进行分组。
如果每个 Person 对象都有一个 Group 属性,
People people = // retrieve the List<Person> somehow
ICollectionView view = CollectionViewSource.GetDefaultView(people);
view.GroupDescriptions.Add( new PropertyGroupDescription("Group") );
从 ItemsControl 派生的所有控件都可以显示分组项,因此
// the XAML
<ListBox ... ItemsSource={Binding}>
<ListBox.GroupStyle>
<x:Static Member="GroupStyle.Default" />
</ListBox.GroupStyle>
</ListBox>
您还可以定义自定义 GroupStyle 并指定 GroupStyle.HeaderTemplate 来定义一个新的 DataTemplate,该 DataTemplate 显示自定义属性,如“一些 PropertyValue (Count)” - 将一个 TextBlock 绑定到{Binding SomeProperty}
,另一个绑定到{Binding ItemCount}
高温高压