c# - 在 WPF 组合框中键入时移动选定的索引
问题描述
我对 WPF 中的组合框有疑问。您知道,当您打开组合框并开始输入时,组合框的选定索引正在移动到以相同字母开头的元素。好吧,我实际上需要同样的东西,但有点不同。
组合框中的项目实际上绑定到一个类。此类有 2 个属性,一个 Code 属性(例如包含“XF15A”)和一个 Description 属性(例如包含“Radio”)。我使用了一个数据模板,该模板实际上将组合框项目的文本绑定到“[code] - [Description]”。
现在,当类型“XF”进入以“XF”开头的组合框项目时。但是我现在还需要的是,当您键入“Ra”时,它应该转到组合框项“XF15A - Radio”。
你们知道如何解决这个问题吗?我也对现有的用户控件开放。
谢谢,
解决方案
我的代码不是你想要的,但应该给你一个你自己如何做的例子:
您必须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;
}
}
}
推荐阅读
- wordpress - 获取 CPT 的父类别
- java - 带有身份验证的 okhttp 发布请求
- javascript - 能够在选择一个元素的值时更新另一个选择元素的值,反之亦然,使用 selectize
- blueprism - 如何在 Blue Prism 中阅读今天的一天?示例星期一
- oracle - Oracle DB 12c 到 19c 迁移 - 从应用程序的角度来看需要注意哪些事项
- python - Django:如何在模板中显示数据库中的图像?
- python - 熊猫按高于阈值的唯一值分组
- pyspark - 在单个 Glue 作业中的多个表的源端运行 SQL 脚本,并具有与 S3 对应的表命名约定
- node.js - 我是nodejs的新手,我一直收到这个错误
- javascript - Node.js - 将参数从客户端传递到端点