WPF ComboBox-选择值时显示不同的内容

标签 wpf data-binding combobox

我需要完成的是一个显示People的组合框。当您展开下拉列表时,它会显示名字和姓氏,但是当您选择一个人时,组合框中显示的值应仅为该人的名字。

我有以下ItemTemplate:

<ComboBox.ItemTemplate>
    <DataTemplate>
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="{Binding FirstName}" />
            <TextBlock Text=" " />
            <TextBlock Text="{Binding LastName}" />
        </StackPanel>
    </DataTemplate>
</ComboBox.ItemTemplate>

选择一个项目后,我还应该怎么做才能仅显示名字?

谢谢!

编辑

稍微改变了一个问题:如果我拥有该人的照片,而我只想显示该图片,而不是仅显示一个人时的名字,该怎么办。换句话说,我如何有两个单独的模板-一个用于下拉菜单,一个用于所选项目?

最佳答案

在数据模板上放置一个触发器。触发器应检查IsSelected属性(DataTemplate需要设置TargetType才能起作用)。如果选择它,则可以将“文本块”的“可见性”设置为“折叠”,并将“图像的可见性”设置为“可见”。如果未选择,则执行相反的操作。

关于WPF ComboBox-选择值时显示不同的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1144893/

相关文章:

c# - 如何在 WPF 上下文菜单项单击事件处理程序中引用右键单击对象?

wpf - 更改 WPFToolkit 图表控件的默认颜色

c# - 以编程方式滚动带有计时器的 ScrollViewer 变得不稳定

c# - 如何为 ContextMenu 的 TreeViewItem 设置 DataContext

c# - 为什么我的数据绑定(bind)看到的是真实值而不是强制值?

model-view-controller - ExtJS 4 MVC ComboBox 通过 Direct Store 加载 - 单击组合框时如何防止加载?

javascript - Extjs 4.0 中将组合框与一个商店链接起来

c# - Listbox ItemTemplate Selector 不选择模板

java - 如何在 JavaFx 的可编辑 ComboBox 中获取输入值?

javascript - HTML 中的 Vue JS 无法识别添加的对象和属性