【发布时间】:2016-10-18 17:57:07
【问题描述】:
我有一个ListBox,声明如下:
<ListBox ItemsSource="{Binding Contracts}" SelectedItem="{Binding SelectedContract}">
<ListBox.ItemTemplate>
<DataTemplate>
<ListBoxItem Content="{Binding Name}">
<ListBoxItem.ToolTip>
<Grid>
[code omitted for reasons of clarity]
</Grid>
</ListBoxItem.ToolTip>
</ListBoxItem>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我期待正常的选择行为,因为我使用项目的ToolTip 而不是它的内容结构。
但是,单击项目的名称不会聚焦/选择该项目。只有通过单击每个项目之间的微小空间(最简单的方法是项目名称和ListBox 的边框之间的空间),项目才会获得焦点/选择。
当然,我四处搜索并认为我找到了罪魁祸首(事件没有冒泡)。但是在 SO 或其他地方提供的任何解决方案,例如。 G。添加这样的代码:
<ListBoxItem.Style>
<Style TargetType="ListBoxItem">
<Style.Triggers>
<Trigger Property="IsKeyboardFocusWithin" Value="True">
<Setter Property="IsSelected" Value="True" />
</Trigger>
</Style.Triggers>
</Style>
</ListBoxItem.Style>
原来没有解决问题。所以,我假设我做错了什么,我只是太盲目了,看不到它。虽然可能有使用代码隐藏的解决方案,但我更喜欢坚持使用干净纯粹的 XAML。
请帮助我,理解我的错误并解决它。
【问题讨论】:
标签: wpf listbox selection listboxitem selectionchanged