gpt4 book ai didi

wpf - 通过键盘 "Type-Ahead"搜索选择 WPF 列表框中的项目

转载 作者:行者123 更新时间:2023-12-01 05:36:04 26 4
gpt4 key购买 nike

我有一个 WPF 列表框控件,我希望允许用户使用预先输入来更改所选项目。我正在寻找的行为与 Windows 资源管理器完全一样。当您继续键入文件夹名称的文本时,列表将继续选择更正确的项目。

例如假设这个文件夹结构:

OtherFolderName
MyFirstFolder
MyFirstFileFolder
MyFirstList

如果您选择 OtherFolderName用鼠标,然后开始输入 MyFirstF项目 MyFirstFolder将被选中,但如果您继续输入 MyFirstFi项目 MyFirstFileFolder将被选中。

我的 WPF 列表框没有表现出这种行为,我希望我可以轻松启用它,因为旧的 WinForms 列表框就是这样做的。

最佳答案

看看 TextSearch 类,特别是 TextSearch.TextPath 附加属性:

<ListBox TextSearch.TextPath="FolderName" ... />

TextSearch.TextPath 属性启用文本搜索并指定如何从每个项目中提取搜索文本。在这种情况下,我假设您的每个 Folder 对象都有一个名为“FolderName”的属性。

如果这不能满足您的所有要求,您可能必须实现自己的搜索,因为 TextSearch 功能不是特别可调整的。去做这个:
  • 处理 TextInput 事件
  • 将当前 TextInput 的时间与前一个 TextInput 的时间进行比较。如果足够接近,则附加到前缀字符串,否则将其设置为键入的单个字符。
  • 搜索给定前缀的所有项目,如果找到设置 SelectedItem。

  • 我将使用附加属性将其构建为一个单独的类,类似于内置的 TextSearch 类。

    关于wpf - 通过键盘 "Type-Ahead"搜索选择 WPF 列表框中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4209774/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com