【问题标题】:WPF ComboBox get highlighted itemWPF ComboBox 获取突出显示的项目
【发布时间】:2013-07-11 20:01:14
【问题描述】:

当下拉列表仍处于打开状态时,我试图在 ComboBox 中获取下拉列表中突出显示的项目的值。

这是因为我想根据突出显示的项目为下拉列表中的所有元素显示不同的ToolTip

我在这里找到了一些信息: http://social.msdn.microsoft.com/Forums/vstudio/en-US/822f85e7-524a-4af2-b09a-c88c94971ac0/identifying-the-highlighted-item-in-a-combobox 但似乎很困难,而且背后有很多代码......

我也尝试过在SelectionChanged 上使用ComboBoxItemIsHighlighted 属性...但我选择的项目而不是突出显示的项目。

我还尝试在我绑定(使用数据绑定)到ComboBoxItemsToolTip 属性的属性获取中循环组合框中的元素,使用如下函数:

foreach (ComboBoxItem comboBoxItem in comboBox.Items)
{
    if (comboBoxItem.IsHighlighted == true)
    {
        //Do something          
        break;
    }
}

但我可能做错了什么......因为comboBoxItem.IsHighlighted它总是错误的......

【问题讨论】:

    标签: c# wpf combobox highlight


    【解决方案1】:

    感谢以下资源: http://social.msdn.microsoft.com/Forums/vstudio/en-US/ce14fc29-d320-4557-abc5-81b042730c48/how-to-get-current-combobox-item-on-which-mouse-overs-in-wpf

    我找到了这个解决方案:

    在 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
        }  
    

    【讨论】:

      猜你喜欢
      • 2011-04-19
      • 1970-01-01
      • 2013-07-14
      • 2018-09-06
      • 2013-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-12
      相关资源
      最近更新 更多