忍受我。我在“自动完成”模式下有一个ComboBox(WPF)。 容易腻到对吗?只需将IsEditable设置为true即可。
<ComboBox
IsEditable="True"
Text="{Binding Model.TextEntered}"
ItemsSource="{Binding Model.ListWithOptions}"/>
我有我的ComboBox,它的自动完成功能非常完美。
但是当我输入以下文字'caaaaa'时,它会将其更改为'CAaaaa'。我理解ComboBox自动完成的文本并匹配大小写。但是当我想进入caaaaa(无论出于何种原因)时,我不想要'CAaaaa'。
有什么想法解决这个问题吗?
作为替代方案,我会满意(如果一切都失败了):
答案 0 :(得分:7)
您是否尝试过设置ShouldPreserveUserEnteredPrefix="True"
?这不会改变在Combobox
中键入的情况,但仍会匹配列表中的项目。因此,在您的示例中,如果您键入“ca13”,它将找到并选择“CA132S”,但它将在组合框中显示为“ca132s”(在输入的情况下)。
可能会显示项目的显示方式,但它会选择正确的项目,并允许您在任何一种情况下键入字符而无需更改。
答案 1 :(得分:2)
尝试将ComboBox的 IsText搜索区分大小写属性设置为true。不确定此属性是否在旧版.NET中可用
答案 2 :(得分:1)
你不能使用if语句检查它是否与列表中的任何内容匹配,如果不匹配,请不要更改它?就像输入每个字母后检查一样,如果它不匹配则将其更改回原来输入的情况?
或者您是否有理由希望人们能够输入不在列表中的内容?如果没有,你不能使用IsTextSearchEnabled而不是IsEditable吗?