如何使用组合框,其中下拉显示两列,但选择只显示一列?

时间:2012-02-05 23:27:41

标签: c# wpf

我会谷歌这个,但我不知道怎么用它来做搜索。我的问题非常简单:我正在移植用Access编写的应用程序,其中一个表单是一个组合框。当您打开下拉列表时,它会显示两列信息:左侧是缩写,右侧是全名。当您选择一个时,组合框中的选定选项(下拉列表已关闭)仅显示缩写。知道如何在WPF中实现这一目标吗?

1 个答案:

答案 0 :(得分:4)

这是在XAML中执行此操作的另一种方法。重要的部分是TextSearch.TextPath。这将搜索具有指定名称的对象。在这种情况下,它是名为“Foo”的字符串。

    <ComboBox Name="cmbBox" ItemsSource="{Binding Test}" Height="25" IsEditable="True" IsReadOnly="True" TextSearch.TextPath="Foo">
        <ComboBox.ItemTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal" TextSearch.Text="{Binding Path=Bar}">
                    <TextBlock Text="{Binding Path=Foo}"/> 
                    <TextBlock Text="{Binding Path=Bar}" Margin="10 0"/>
                </StackPanel>
            </DataTemplate>
        </ComboBox.ItemTemplate>
    </ComboBox>

要以编程方式设置TextSearch,您只需要:

    cmbBox.SetValue(TextSearch.TextPathProperty, "Foo");