带有 Expander 的典型 ListView GroupStyle 大致如下所示:
<ListView.GroupStyle>
<GroupStyle>
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<Expander>
<Expander.Header>
<TextBlock Text="{Binding Path=Name}" />
</Expander.Header>
<Expander.Content>
<ItemsPresenter />
</Expander.Content>
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
</GroupStyle>
</ListView.GroupStyle>
TextBlock 绑定到 Name,这似乎产生了 GroupItem 对象的值,该对象的 propertyName 被传递到 PropertyGroupDescription 中,该 PropertyGroupDescription 被添加到 ListCollectionView 的 GroupDescriptions 集合中(whew):
class MyClass
{
public int Id { get; set; }
public int FullName { get; set; }
public string GroupName { get; set; } // used to group MyClass objects
}
MyView.GroupDescriptions.Add(new PropertyGroupDescription("GroupName"));
如何让我的 ListView 的组标题显示 GroupName 以外的属性?我要说的一点是 GroupName 对于将我的对象分成组很有用,但不一定是我希望用于所述组的标题的名称。