【发布时间】:2014-05-12 18:21:10
【问题描述】:
如何响应 WPF ComboBox 的 ComboBoxItem 被双击?现在,当它被双击时,它会关闭 ComboBox 并单击下面的任何内容。我想对被双击的项目采取行动并阻止事件继续进行。
【问题讨论】:
标签: wpf
如何响应 WPF ComboBox 的 ComboBoxItem 被双击?现在,当它被双击时,它会关闭 ComboBox 并单击下面的任何内容。我想对被双击的项目采取行动并阻止事件继续进行。
【问题讨论】:
标签: wpf
最好的办法是在组合框的ItemTemplate 中有一个控件,它将占据ComboBoxItem 的整个空间并处理DoubleClick 事件。像这样的:
<ComboBox HorizontalContentAlignment="Stretch">
<ComboBox.ItemTemplate>
<DataTemplate>
<Button Background="Transparent"
BorderBrush="Transparent"
MouseDoubleClick="Button_MouseDoubleClick" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
【讨论】:
我不知道是否还有人对此感兴趣,但不幸的是,我花了很多时间研究解决方法,但没有成功。最后,我找到了一个效果不错的解决方案,和 Adi 的评论类似。
1) 在 ComboBox 控件的文本框区域上放置一个 TextBox。不要覆盖下拉按钮。 2) 通过代码或 IDE 在此 TextBox 上使用“BringToFront”运算符。 3) 将 TextBox 的 Data Binding“Text”属性设置为与 ComboBox 相同的绑定源和字段。 4)为TextBox设置DoubleClick事件,做任何你想做的事。
就是这样。
【讨论】: