wpf - 如何使用转换器设置组合框项目的文本?
问题描述
我有一个转换器,它绑定到一个集合,其中元素的类型是 MyType。我想用转换器设置它是声音的文本。因此,从快速测试开始,我首先尝试使用文本“Hello”设置所有元素的文本。
我正在尝试使用此代码:
<ComboBox
DisplayMemberPath="MyProperty"
SelectedItem="{Binding Path=MySelectedItem, Mode=TwoWay}"
ItemsSource="{MyViewModelCollection}">
<ComboBox.ItemContainerStyle>
<Style TargetType="ComboBoxItem">
<Setter Property="TextBlock.Text" Value="Hello"/>
</Style>
</ComboBox.ItemContainerStyle>
</ComboBox>
但是,显示的是在 DisplayMemeberPath 中设置的属性值。
因此,第一步我想知道如何为所有项目设置文本“你好”,但我的想法是使用一个转换器,该转换器采用组合框项目,并根据一些检查,返回我想要显示的文本。
谢谢。
解决方案
ItemTemplate
使用 TextBlock 将该属性设置为适当的 DataTemplate,而不是 DisplayMemberPath :
<ComboBox ItemsSource="{Binding MyViewModelCollection}"
SelectedItem="{Binding MySelectedItem}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding MyProperty,
Converter={StaticResource MyConverter}}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
推荐阅读
- python-3.x - 如何将 Selenium Webdriver 浏览器放入 Tkinter GUI?
- docker - Kubernetes 中 Docker 容器中的内存映射文件是否与 Linux 中的常规进程一样工作?
- amazon-web-services - Terraform 将路由附加到路由表
- c# - 连接到数据库时 SQL Express 连接错误
- cmake - 为什么不能从 cmake 脚本调用 wsl?
- c++ - CPP 或 H 中的助手
- orocommerce - 如何在我的自定义主题中包含自定义 js 文件?
- reactjs - 如何在没有外部 API 的情况下在 React 中发布表单数据
- c - 在缺乏知识的情况下用 C 语言编写二叉树
- php - 一般错误:1364 字段 'parent_id' 没有默认值