WPF 可编辑组合框文本搜索行为

Posted

技术标签:

【中文标题】WPF 可编辑组合框文本搜索行为【英文标题】:WPF Editable ComboBox Text Search Behavior 【发布时间】:2011-01-25 09:13:59 【问题描述】:

我有一个 ComboBox,它在 ItemsSource 上绑定了一个实体 ObservableCollection。像这样:

Key    Desc1   Desc2
C0001  myDesc  myDesc
D0001  myDesc  myDesc
A0001  myDesc  MyDesc

组合框是这样定义的:

<ComboBox
   IsEditable=True
   DisplayMemberPath="Key"
   SelectedValuePath="Key"
   ItemsSource="Binding Path=MyList, Mode=OneWay" />

现在我有这个问题...

如果我在组合框的空可编辑文本框中键入一个字符,则匹配“以”键入字符“开头”的第一​​个元素。所以,如果我键入“C”,则选定项是元素“C0001”......我会避免这种情况!

我会使用不同的搜索逻辑,根据输入的全文找到选定项。这样:

Text Typed        SelectedItem
C                 null
C0                null
C00               null
C000              null
C0001             [C0001, myDesc, myDesc] OK!

有可能吗?我该怎么办?

【问题讨论】:

【参考方案1】:

对于 Windows 中的 Combo,这种行为一直是这样的。如果您想做这样的事情,最好使用搜索字段和可选择的结果列表。

另外,TextBox 确实支持不同的自动完成建议模式,但我想你也需要一个下拉菜单。(不,它不支持)。

post 尝试将两者结合起来,非常简洁。

【讨论】:

问题是关于 WPF 而不是 Winforms! 哦,是的,WPF 的文本框没有这些东西……抱歉,现在还早! 没有办法为选定项目扩展基于 ComboBox 的覆盖搜索逻辑?

以上是关于WPF 可编辑组合框文本搜索行为的主要内容,如果未能解决你的问题,请参考以下文章