我在WPF应用程序中使用标准的AutoCompleteBox控件,其中用户键入查询并在键入时自动完成列表并进行过滤。在下拉列表中,我想突出显示与用户输入的文本匹配的每个列表框项目中的文本。例如,如果他们输入ap并且下拉有dap和apple,那么每个单词中的ap将以粗体显示,而其余文本将不是粗体。
我有所有代码实际上将正确的文本更改为粗体,但我永远无法在正确的时间调用它。我找不到正确的事件来调用代码来进行粗体化。为了进行粗体处理,我遍历VisualTreeHelper以查找每个ListBoxItem中的每个TextBlock,但是我找不到正确的事件来触发此遍历。我总是在显示整个列表之前或者在过滤之前调用它,因此粗体文本永远不会显示。
我知道我的代码有效,因为如果我从列表框中调用遍历选择更改事件,它会正确地加粗文本,但这不是我正在寻找的交互,因为用户必须突出显示一个条目才能看到粗体文本
我可以处理什么事件并调用此遍历,因此它是否已经过滤并显示了列表?请注意,每次用户在搜索框中输入另一个字符时,都会重新过滤列表。
感谢您的帮助,因为这令我感到沮丧!