不希望可编辑的组合框更改itemssource

时间:2013-06-18 10:26:45

标签: wpf combobox

我有一个自定义的wpf ComboBox,其中ItemsSource是一个长字符串列表。

特殊:ItemsSource由ComboBox TextBox中的文本动态过滤。 这意味着,ItemsSource通过抛出过滤后的字符串来更改其ItemCount。 但它永远不应该改变字符串项本身。但这就是发生的事情:

要有一个允许文本输入的ComboBox,我需要设置

IsEditable='True'

示例:这是我的ItemsSource:

Item1000
Item2000
Item3000

当我输入“Item200”时,按回车键,显示要选择的项目:

Item2000

当我没有用鼠标或向上/向下箭头选择项目时,只按返回键入“Item200”,我下次有这个ItemsSource:

Item1000
Item200
Item3000

如何防止此行为?

我听说在wpf中,在Winforms中称为“DropDownList”-Style,你可以通过设置IsEditable = False来实现。 但是,ComboBox TextBox(提供过滤)将无法使用,在我的情况下这不是一个选项。 ?

2 个答案:

答案 0 :(得分:1)

您所描述的预期行为是自动完成框而不是ComboBox。尝试使用实际设计用于执行所需操作的控件,而不是使用非内置控件。有很多自动完成的实现(Silverlight内置它但WPF没有),它们是免费提供的,例如:http://wpfautocomplete.codeplex.com/

答案 1 :(得分:0)

..答案是我覆盖了一些对象。我发现你的良好暗示!