我有一个CheckComboBox绑定到一个包含一个简单索引和完整描述的列表,如下所示:
code full_description
1 Bus
2 Car
3 Motobike
是否可以仅显示所选项目的1,2,3并在下拉列表时显示完整描述?
我发现了一个类似的问题here。但是由于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的源代码但什么都没得到。希望有人可以帮助我。感谢。
答案 0 :(得分:2)
您是否尝试设置ContentTemplate
的{{1}}?
ItemContainerStyle
另外,将<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>
设置为您想要的属性。
答案 1 :(得分:0)
1.在您的项目类中覆盖ToString()
:
public override string ToString()
{
return full_description;
}
2.将DisplayMemberPath
设为code
<CheckComboBox ItemsSource="{Binding CarList}"
DisplayMemberPath="code" />