如何在Xceed WPF工具包中的CheckComboBox中显示下拉列表和所选项的不同值?

时间:2014-05-29 10:32:32

标签: c# wpf

我有一个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的源代码但什么都没得到。希望有人可以帮助我。感谢。

2 个答案:

答案 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" />