WPF ComboBoxItem DataTemplate无法单击项目文本来选择

时间:2018-06-25 17:34:07

标签: .net wpf

我正在用ComboBox填充ItemsSource并显示一个简单的Binding

<ComboBox 
    ItemsSource="{Binding Locations}" 
    SelectedItem="{Binding Location}"
>
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <ComboBoxItem Content="{Binding Name}" />
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

我无法通过单击文本来选择新的组合框项目(我必须在文本外部单击):

enter image description here

因此,如果单击内部边框(文本容器)内的深蓝色区域,则不会更新选择。如果单击浅蓝色区域,它将按预期更新。为什么会这样?

1 个答案:

答案 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}"/>