将列表框选择更改为在按键时悬停

时间:2019-05-08 11:38:22

标签: c# wpf

因此,我有一个自动完成框,用于搜索要从列表中过滤的名称。 一旦尝试重新获得焦点,我将尝试让搜索栏重新填充原始搜索条件。

问题是使用了selectionchanged事件,箭头键触发了该事件,并正在加载所需的更多数据,这大大降低了程序的速度。

我尝试使用按键事件,虽然它实际上直到按下回车键才真正选择该项目,但它确实弄乱了重新填充的原始搜索条件。

private void acbSearch_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    if (SelectedItem != null)
    {
        _oldID = SelectedItem.ID;
        RaiseItemChangeEvent();
    }
}

以下是系统的两个不同版本,以显示到目前为止我所做的事情


private void acbSearch_PreviewKeyUp(object sender, KeyEventArgs e)
{
    GlobalData.SearchText = acbSearch.Text;
    if (SelectedItem != null && (e.Key == Key.Return || e.Key == Key.Tab || e.Key == Key.Enter))
    {
        if (this.CID != _oldCID || SelectedItem.ID != _oldID)
        {
            _oldID= SelectedItem.ID;
            acbSearch.IsDropDownOpen = false;                    
            RaiseItemChangeEvent();
        }
    }
}

我想让箭头键在列表中的所选项目上执行更多的“悬停”操作,直到按下Enter键或鼠标选择该项目为止。

这可以实现吗?

0 个答案:

没有答案