C# 具有分组和自定义组标题的组合框
我想创建一个分组的C# 具有分组和自定义组标题的组合框,c#,wpf,combobox,C#,Wpf,Combobox,我想创建一个分组的组合框,其中包含一个组头,该组头不仅绑定到组名,还绑定到值的其他属性,通过这些属性,组合框的“ItemsSource”也被分组 这是CollectionViewSource,用作组合框esitemsource: <CollectionViewSource x:Key="Tools" Source="{Binding AvailableTools}"> <CollectionViewSource.GroupDescriptions>
组合框
,其中包含一个组头,该组头不仅绑定到组名,还绑定到值的其他属性,通过这些属性,组合框
的“ItemsSource”也被分组
这是CollectionViewSource
,用作组合框
esitemsource
:
<CollectionViewSource x:Key="Tools" Source="{Binding AvailableTools}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="Toolbox" />
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
在标题模板中,我可以绑定到组名,但不能绑定其他内容。我想要实现的是绑定到创建组的对象,而不仅仅是它的ToString()
result。即,工具箱
属性的值,通过该属性,我分组包含类型为BitmapImage
的图标
属性,我希望将该属性绑定到标题模板内的图像,以便在组标题中显示该图标是否可以这样做?如果可以,如何做?
这个问题有点难以解释,如果我不够清楚,请询问
<ComboBox
SelectedItem="{Binding SelectedTool, Mode=TwoWay}"
Margin="10,0,0,0"
Width="40"
ItemsSource="{Binding Source={StaticResource Tools}}">
<ComboBox .GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate DataType="CollectionViewGroup">
<Grid Background="{StaticResource LighterBackgroundBrush}">
<TextBlock Text="{Binding Name}"/>
</Grid>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</ComboBox .GroupStyle>
<ComboBox.ItemTemplate>
<DataTemplate DataType="viewModels1:ToolSelectionItem">
<StackPanel Orientation="Horizontal">
<Image Source="{Binding Tool.ToolIcon}" Width="16" />
<TextBlock Text="{Binding ToolName}" Margin="10,0,0,0"/>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>