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
相关产品推荐
相关产品推荐

