我试图在下拉列表仍处于打开状态时获取
ComboBox
中下拉列表中突出显示的项目的值。
这是因为我想根据突出显示的项目为下拉列表中的所有元素显示不同的
ToolTip
。
我在这里找到了一些信息: http://social.msdn.microsoft.com/Forums/vstudio/en-US/822f85e7-524a-4af2-b09a-c88c94971ac0/identifying-the-highlighted-item-in-a-combobox 但似乎很困难并且背后有很多代码......
我还尝试在
IsHighlighted
上使用 ComboBoxItem
的 SelectionChanged
属性...但我给出的是选定的项目,而不是突出显示的项目。
我还尝试在绑定(使用数据绑定)到
ToolTip
的 ComboBoxItems
属性的属性获取中循环使用 ComboBox 中的元素,使用如下函数:
foreach (ComboBoxItem comboBoxItem in comboBox.Items)
{
if (comboBoxItem.IsHighlighted == true)
{
//Do something
break;
}
}
但我可能做错了什么...因为
comboBoxItem.IsHighlighted
它总是假的...
我找到了这个解决方案:
在 WPF 中:
<ComboBox
Name="ComboBox1">
<ComboBox.ItemContainerStyle>
<Style TargetType="{x:Type ComboBoxItem}">
<EventSetter Event="MouseMove" Handler="OnMouseMove" />
</Style>
</ComboBox.ItemContainerStyle>
<ComboBoxItem
Content="Test1"></ComboBoxItem>
<ComboBoxItem
Content="Test2"></ComboBoxItem>
</ComboBox>
在后面的代码中:
private void OnMouseMove(object sender, MouseEventArgs e)
{
ComboBoxItem highlightedComboBoxItem = sender as ComboBoxItem;
// highlightedComboBoxItem is true
}
非常感谢您。我长期以来一直在寻找这样的解决方案。