我正在用ComboBox
填充ItemsSource
并显示一个简单的Binding
:
<ComboBox
ItemsSource="{Binding Locations}"
SelectedItem="{Binding Location}"
>
<ComboBox.ItemTemplate>
<DataTemplate>
<ComboBoxItem Content="{Binding Name}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
我无法通过单击文本来选择新的组合框项目(我必须在文本外部单击):
因此,如果单击内部边框(文本容器)内的深蓝色区域,则不会更新选择。如果单击浅蓝色区域,它将按预期更新。为什么会这样?
答案 0 :(得分:2)
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}"/>