我正在尝试创建一个ItemsControl,该控件负责显示按元数据排序的各种项目。每个项目可以具有多个元数据。例如,“对话”类型的项目可能具有“章节”,“行为”和“音量”元数据。

在搜索分组在WPF中的工作方式后,我发现了GroupStyles和PropertyGroupDescription类。

我创建了自己的类,该类继承自PropertyGroupDescription,并且返回类型为“Metadata”的对象。

无论如何,在我的ItemsControl的GroupStyle DataTemplate中,我可以绑定(bind)到返回的对象(即“Metadata”对象),然后根据需要显示其属性吗?还是我被迫绑定(bind)到“名称”?

换句话说:

<ItemsControl.GroupStyle>
    <GroupStyle>
        <GroupStyle.HeaderTemplate>
            <DataTemplate>
                  Am I forced to bind to "Name" here ?
            </DataTemplate>
        </GroupStyle.HeaderTemplate>
    </GroupStyle>
</ItemsControl.GroupStyle>

最佳答案

默认情况下,您可以将DataContext中的GroupStyle绑定(bind)到此CollectionViewGroup Properties。但是当然,如​​果需要,您可以设置其他任何 BindingSource

如果要在组中使用第一个对象,请使用:

<TextBlock Text="{Binding Path=Items[0].YourStringProperty}" />

10-08 08:02