如何在 WPF ListBox 中通过键入查找项目?

6
大多数列表框都允许您通过键入显示文本的第一个字母来查找其中的项目。如果键入的字母匹配多个项目,则可以继续添加字母以缩小搜索范围。
我需要在 WPF ListBox 中实现此功能。但是,这些项不是普通字符串,而是使用 DataTemplate 呈现的自定义对象。我希望有一种方法可以提供一个路径,用于在 ListBox 项目的文本键盘导航中使用的字符串值。
如何实现这一点?
1个回答

20
你可以尝试将IsTextSearchEnabled设置为true,并使用TextSearch.TextPath附加属性。

例如:

<ListBox IsTextSearchEnabled="True" 
         TextSearch.TextPath="CustomObject.StringProperty"/>

1
非常感谢。这个完美地解决了问题。只是为了明确起见,TextPath的值应该是一个路径(第一部分看起来像一个类型名称,但在这种情况下,该项有一个名为“CustomObject”的属性,而该对象有一个名为“StringProperty”的属性)。 - Drew Noakes
True是默认值,所以你可以选择是否要让它看起来更冗长。 - Simon_Weaver
运行得很好。TextPath可以绑定到多个属性吗? - Igor
@Igor 是的。你可以使用MultiBinding将一个属性绑定到多个源。只需在Google上搜索即可。 - Vijay Chavda

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接