我渴望找到一些可靠的(免费、开源或教程/示例)代码,使WPF Combobox在用户输入时能够自动完成/自动过滤。但是到目前为止,我尝试过的所有方法都存在某种问题...
可重复使用的 WPF 自动完成文本框 很接近,但我不能让它 与多个过滤器一起工作(更多信息在这里)。
WPF 自动完成文本框/组合框 对我无效,因为它继承自 UserControl,因此不支持我需要的 DataTemplates(用于显示/选择具有多个属性的对象的一个属性的值)。
在 WPF 中自动过滤 ComboBox 不起作用,因为它似乎永远找不到继承的 ComboBox 代码的 EditableTextBox 部分(通过
(TextBox)base.GetTemplateChild("PART_EditableTextBox")
,它似乎总是返回 null)。构建一个筛选 ComboBox 以用于 WPF 在输入几个字母后就会陷入刷新循环,然后溢出堆栈。
我考虑过的其他事情:
我知道Windows Forms的Combobox控件有AutoCompleteMode属性,并且我可以在WPF中嵌入它,但我无法想象它会与我的WPF数据绑定很好地配合。
也许它太复杂了,我需要简化,可能是通过为ComboBox构建一维(单属性)ObservableCollections...然而,将多个过滤器(一个由另一个控件的值设置,另一个来自用户正在输入的内容)应用于使用相同DataSet的不同视图的多个控件,每次用户键入字符时都需要摧毁和重建列表,这需要大量的处理能力!
所以...我已经束手无策了。有什么建议吗?