如何有一个组合框,其中下拉显示两列,而选择只显示一列

本文关键字:显示 两列 选择 一列 有一个 组合 | 更新日期: 2023-09-27 18:23:39

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

如何有一个组合框,其中下拉显示两列,而选择只显示一列

以下是在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>

要以编程方式设置文本搜索,您所要做的就是:

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