You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WPF实现ComboBox下拉显示文本、选中后头部显示图标

WPF ComboBox 实现下拉显示文本、选中后仅显示图标

要实现你要的效果,不能用DisplayMemberPath——它只能指定单一属性作为全局显示内容,没法区分下拉项和选中后的头部状态。得通过自定义模板分别控制两种场景的显示:

完整XAML示例

<ComboBox x:Name="typeComboBox">
    <!-- 下拉列表项模板:显示Type文本 -->
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Type}" 
                       Padding="5,2"/>
        </DataTemplate>
    </ComboBox.ItemTemplate>

    <!-- 选中后头部模板:仅显示Icon图标 -->
    <ComboBox.SelectionBoxItemTemplate>
        <DataTemplate>
            <Image Source="{Binding Icon}" 
                   Stretch="Uniform" 
                   Width="20" Height="20"/>
        </DataTemplate>
    </ComboBox.SelectionBoxItemTemplate>
</ComboBox>

后台代码赋值示例

确保ComboBox已绑定到ComboBoxTypeItem集合:

typeComboBox.ItemsSource = new List<ComboBoxTypeItem>
{
    new ComboBoxTypeItem(PLMC.SPEC_REQ_TYPE),
    new ComboBoxTypeItem(PLMC.RAZDEL_REQ_TYPE),
    new ComboBoxTypeItem(PLMC.REQ_TYPE),
    new ComboBoxTypeItem(PLMC.REQ_ND_TYPE)
};

关键说明

  • ComboBox.ItemTemplate:控制下拉展开时每个选项的显示样式,这里绑定Type字段展示文本。
  • ComboBox.SelectionBoxItemTemplate:控制ComboBox关闭后头部的显示样式,这里绑定Icon字段展示图标,可根据需求调整Image的宽高和Stretch属性避免图标变形。

内容的提问来源于stack exchange,提问作者Ivan Serdukov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 20:21:09