我在WPF中的组合框有问题。您知道当您打开组合框并开始键入内容时,组合框的选定索引将移动到以相同字母开头的元素。好吧,我实际上需要相同的东西,但有所不同。
组合框中的项目实际上已绑定到一个类。此类具有2个属性,一个Code属性(例如包含“ XF15A”)和一个Description属性(例如包含“ Radio”)。我使用了一个数据模板,该模板实际上将组合框项目的文本绑定到“ [代码]-[描述]”。
现在,当类型“ XF”进入到以“ XF”开头的组合框项目时。但是我现在还需要的是,当您键入“ Ra”时,它应该转到组合框项目“ XF15A-Radio”。
你们知道如何解决这个问题吗?我也欢迎现有的用户控件。
谢谢
答案 0 :(得分:0)
我的代码并不是您想要的,但是应该给您一个示例,说明您自己如何执行:
您必须自己处理PreviewTextInput
,然后让算法决定要选择哪个项目。这是一个简单的示例:
XAML:
<ComboBox x:Name="cb" PreviewTextInput="ComboBox_PreviewTextInput">
<ComboBoxItem>adsfsf</ComboBoxItem>
<ComboBoxItem>adsfsf</ComboBoxItem>
<ComboBoxItem>acdd</ComboBoxItem>
<ComboBoxItem>adsfsf</ComboBoxItem>
</ComboBox>
后面的代码:
private void ComboBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
cb.IsDropDownOpen = true;
foreach (ComboBoxItem item in cb.Items)
{
var str = (string)item.Content;
if(str.Contains(e.Text))
{
cb.SelectedItem = item;
break;
}
}
}