我试图让自己成为一个AutoCompleteTextBox,当输入时会在下拉列表中显示建议。
通过从头开始编写新的用户控件,我设法让这个工作(有几个小问题)。
然而,经过一些阅读后,似乎不推荐这种“重新发明方向”的方法,它让我觉得我的功能非常接近一个组合框,它有一个文本框而不是切换按钮。
我有什么方法可以扩展ComboBox,稍微更改它的模板,并允许我根据输入的文本编写一些方法来填充下拉项目?
答案 0 :(得分:3)
重新发明轮子是有风险的,但是然后AutoCompleteTextBox在逻辑上与ComboBox不同。例如,您可能希望提供一些回调,以根据输入的文本向文本框提供自动填充项,而不是提供所有选项的单个ItemsSource。 ComboBox还显示ItemsSource中的所有项目,您将没有足够的控件来过滤或重新排序它们。但是,您可以查找此问题的现有解决方案。例如,有一个here。我没有测试它,但Hermit Dave在开发人员社区中是已知的,因此它应该是您需要的一个良好的基础。您可以对此控件进行更改并为开发做出贡献,而不会重新发明轮子。
答案 1 :(得分:2)
在实际应用程序中只有一种可接受的自动完成方法:http://blog.petegoo.com/index.php/2011/11/22/building-an-auto-complete-control-with-reactive-extensions-rx/
我不能再认真了。