我渴望找到一些固体(免费的,开源的或教程/示例)的代码,使WPF组合框执行autocomlete/autofilter作为用户类型。但是,一切到目前为止,我已经试过有过某种问题...WPF Combobox与自动完成/自动过滤器?
A Reusable WPF Autocomplete TextBox差一点,但我不能得到它work with more than one filter(更多信息here)。
WPF autocomplete textbox/combobox对我不起作用,因为它从UserControl继承,因此不支持我需要的DataTemplates(用于显示/选择具有多个属性的对象的一个属性的值)。
Automatically Filtering a ComboBox in WPF没有工作,因为它似乎无法找到继承的组合框代码的EditableTextBox部分(通过
(TextBox)base.GetTemplateChild("PART_EditableTextBox")
似乎总是返回null)。Building a Filtered ComboBox for WPF只是在刷新循环中卡住,然后在输入几个字母后溢出堆栈。
我已经考虑其他的事情:
我知道Windows Forms' Combobox control has AutoCompleteMode和我可以embed it in WPF,但我无法想象它会与我的WPF数据绑定很好的发挥。
也许是太复杂了,我需要简化,也许通过建立一维(单属性)ObservableCollections为ComboBoxen ......然而,应用多个过滤器中的一个被其他控件的值设置的挑战(,和一个从用户输入的内容)到使用同一DataSet的不同视图的多个控件,每次用户输入一个字符时都需要一个荒谬的处理能力来销毁和重建列表!
所以......我在智慧的结尾。有什么建议么?
我希望能够搜索多个领域(例如“价值”和“描述“),不区分大小写等 - 但它是一个PITA。回顾一下,因为它可以像模板一样按预期工作。 – ewall 2010-10-25 16:49:21
您可以通过创建另一个属性并将这些字段连接在一起来过滤多个字段。然后将搜索字段设置为该字段。由于它包含了所有需要搜索工作的字段。一点点黑客,但完成工作。 – Kelly 2014-06-21 16:14:01
@ewall你可以试试https://www.nuget.org/packages/THEFilteredComboBox/这个我们创建了这个控件,因为使用上面的属性还不够 – 2015-07-27 23:15:23