.net - WPF ComboBoxItem DataTemplate 无法单击要选择的项目文本
问题描述
我正在填充 aComboBox
并ItemsSource
显示一个简单的Binding
:
<ComboBox
ItemsSource="{Binding Locations}"
SelectedItem="{Binding Location}"
>
<ComboBox.ItemTemplate>
<DataTemplate>
<ComboBoxItem Content="{Binding Name}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
我无法通过单击文本来选择新的组合框项目(我必须单击文本外部):
因此,如果我单击内边框(文本容器)内的深蓝色区域,它不会更新选择。如果我单击浅蓝色区域,它会按预期更新。为什么会这样?
解决方案
ItemTemplate 中不应有 ComboBoxItem(因为它被用作另一个自动生成的 ComboBoxItem 的 ContentTemplate)。
改用 TextBlock:
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
或者只是删除整个 ItemTemplate 并设置 DisplayMemberPath:
<ComboBox
DisplayMemberPath="Name"
ItemsSource="{Binding Locations}"
SelectedItem="{Binding Location}"/>
推荐阅读
- angular - 如果模型更改,如何在 Angular 中激活管道?
- python - 为什么 Selenium Python Select 在选项文本存在时返回空白文本
- python - 如何在同一图表上的多个动画之间创建延迟(matplotlib,python)
- sql - 查询以更新缺失的列
- python - 用最后一个已知值填充时间序列列值
- postgresql - 如何在 Docker Compose 中加载数据之前等待 Postgres 准备就绪
- ms-access - MS 将某些列访问为行
- python-3.x - 如何在python中的一行之前添加一个空格
- python - 计算每列的唯一值总数
- python - Python Sockets 端口转发