如何在Xceed WPF工具箱中的CheckComboBox中显示下拉列表和选定项的不同值
本文关键字:下拉列表 CheckComboBox Xceed WPF 工具箱 显示 | 更新日期: 2023-09-27 18:05:39
我有一个CheckComboBox绑定到一个列表,包括一个简单的索引和一个完整的描述,像这样:
code full_description
1 Bus
2 Car
3 Motobike
是否有可能只显示1、2、3所选项目和显示完整的描述时,下拉列表?我在这里发现了一个类似的问题。但是由于CheckComboBox使用了差异实现,我修改了class ComboBoxItemTemplateSelector
的部分如下:
public override DataTemplate SelectTemplate(object item, DependencyObject container)
{
SelectorItem selectorItem = VisualTreeHelpers.GetVisualParent<SelectorItem>(container);
if (selectorItem != null)
{
return DropDownTemplate;
}
return SelectedTemplate;
}
对于下拉列表可以很好地工作,但是对于选中的项目就不行了。我试图挖掘CheckComboBox的源代码,但一无所获。希望有人能帮我。谢谢。
您是否尝试设置ItemContainerStyle
的ContentTemplate
?
<ComboBox.ItemContainerStyle>
<!--Not sure what TargetType you should use-->
<Style TargetType="ComboBoxItem">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<!--Here goes your DropDownTemplate-->
<TextBlock Text="{Binding Description}" />
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</ComboBox.ItemContainerStyle>
同样,将DisplayMemberPath
设置为您想要的属性。
1。在你的项目类中重写ToString()
:
public override string ToString()
{
return full_description;
}
2。set DisplayMemberPath
to code
<CheckComboBox ItemsSource="{Binding CarList}"
DisplayMemberPath="code" />