如何在视图模型中访问 WPF 工具包自动完成框的建议列表框

问题描述

在我的项目中,我使用了来自 dotnetprojects 的 WPF 工具包的自动完成框:

<input:autocompletebox Grid.Row="0" 
                       Height="30" 
                       Width="300"
                       ItemsSource="{Binding Persons}"
                       SelectedItem="{Binding Selectedname,Mode=TwoWay}"
                       ValueMemberPath="displayName"
                       ItemTemplate="{StaticResource autocompleteboxItemTemplate}"
                       ItemFilter="{Binding PersonFilter}"
                       Style="{DynamicResource autocompleteboxStyle}"
                       x:Name="autocompletebox">
        <i:Interaction.Triggers>
            <i:EventTrigger EventName="TextChanged">
                <i:InvokeCommandAction Command="{Binding TextChanged}"
                                           CommandParameter="{Binding  ElementName=autocompletebox}"/>
        </i:EventTrigger>
    </i:Interaction.Triggers>
</input:autocompletebox>

在 TextChanged 事件中,我将 autocompletebox 作为参数传递给视图模型:

private void TextChangedInternal(object obj)
{
    var Box = obj as autocompletebox;
    ...
}

从现在开始,我不知道如何访问弹出窗口中的建议列表框。 我的目的是在建议中突出显示输入的查询

有人知道如何存档吗?

解决方法

您需要将项目模板更改为您控制的内容。这意味着您设置了一个 AutoCompleteBox.ItemTemplate。此项目模板将包含找到的每个结果。

This Tutorial is for silver light 但这几乎是您创建自定义控件以突出显示结果中的文本所需的全部内容。完成后,将其添加到 ItemTemplate 的数据模板中。