簡體   English   中英

如何在Xceed WPF工具箱的CheckComboBox中為下拉列表和所選項目顯示不同的值?

[英]How to display a different value for dropdown list and selected item in a CheckComboBox in Xceed WPF toolkit?

我有一個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的源代碼,但一無所獲。 希望有人可以幫助我。 謝謝。

您是否嘗試僅設置ItemContainerStyleContentTemplate

<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.override ToString()在您的項目類:

 public override string ToString()
 {
    return  full_description;
 }

2.設置DisplayMemberPathcode

<CheckComboBox ItemsSource="{Binding CarList}"  
              DisplayMemberPath="code" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM