Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 具有分组和自定义组标题的组合框_C#_Wpf_Combobox - Fatal编程技术网

C# 具有分组和自定义组标题的组合框

C# 具有分组和自定义组标题的组合框,c#,wpf,combobox,C#,Wpf,Combobox,我想创建一个分组的组合框,其中包含一个组头,该组头不仅绑定到组名,还绑定到值的其他属性,通过这些属性,组合框的“ItemsSource”也被分组 这是CollectionViewSource,用作组合框esitemsource: <CollectionViewSource x:Key="Tools" Source="{Binding AvailableTools}"> <CollectionViewSource.GroupDescriptions>

我想创建一个分组的
组合框
,其中包含一个组头,该组头不仅绑定到组名,还绑定到值的其他属性,通过这些属性,
组合框
的“ItemsSource”也被分组

这是
CollectionViewSource
,用作
组合框
es
itemsource

<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>