我正在尝试创建一个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}" />