使用 CollectionViewSource 可以轻松地对 ListBoxItem 进行分组。但每组Header,只有一个“Name”数据。如何将更多数据放入 Header?
像图片一样。
- 我想在标题中使用自定义控件,并将视图模型绑定到它。但我不知道如何从分组父级获取视图模型。
- 并且,
<ItemsPresenter/>
groupItem 的部分。如果我想将某些东西绑定到它,我该怎么办?
并且,我的代码:
<ListBox ItemsSource="{Binding Source={StaticResource XamlBookMarks}}"
ItemTemplate="{StaticResource TemplateBookMark}">
<ListBox.GroupStyle>
<GroupStyle ContainerStyle="{StaticResource StyleBookMarkGroup}" />
</ListBox.GroupStyle>
</ListBox>
<Style x:Key="StyleWorkSiteGroup" TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<StackPanel>
<ContentControl Content="{Binding}" ContentTemplate="{StaticResource TemplateHeader}" />
<!--here, i want binding something to ItemsPresenter-->
<ItemsPresenter/>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<DataTemplate x:Key="TemplateHeader" DataType="{x:Type GroupItem}">
<DockPanel>
<DockPanel.Resources>
<converters:HeaderGetter x:Key="HeaderConverter" />
</DockPanel.Resources>
<ContentControl DockPanel.Dock="Top" Content="{Binding Name, Converter={StaticResource HeaderConverter}, ConverterParameter={StaticResource XamlHeaders}}">
<ContentControl.Resources>
<DataTemplate DataType="{x:Type local:GroupOneHeaderViewModel}">
<views:GroupOneHeaderView />
</DataTemplate>
<DataTemplate DataType="{x:Type local:GroupTwoHeaderViewModel}">
<views:GroupTwoHeaderView />
</DataTemplate>
</ContentControl.Resources>
</ContentControl>
</DockPanel>
</DataTemplate>