C# 键入时wpf datagrid只读跳转到行
在显示表格数据的只读datagrid中,我希望在用户键入某些字符时具有(开箱即用)跳转到行的功能 假设以下记录可用:C# 键入时wpf datagrid只读跳转到行,c#,wpf,datagrid,C#,Wpf,Datagrid,在显示表格数据的只读datagrid中,我希望在用户键入某些字符时具有(开箱即用)跳转到行的功能 假设以下记录可用: 。。。一些数据 办公用品 命令 。。。更多数据 当用户在“O”中键入时,应选择ID为“Office supplies”的行。当用户在此之后键入“r”时,应选择“订单”行 实际上,我的问题是:是否有现成的解决方案,或者我必须创建一些自定义内容?您几乎必须为搜索输入创建一个文本框,然后使用LINQ(或您喜欢的任何其他方式)过滤您的DataGrid绑定到的集合并将生成的对象克隆到另
- 。。。一些数据
- 办公用品
- 命令
- 。。。更多数据
实际上,我的问题是:是否有现成的解决方案,或者我必须创建一些自定义内容?您几乎必须为搜索输入创建一个文本框,然后使用LINQ(或您喜欢的任何其他方式)过滤您的DataGrid绑定到的集合并将生成的对象克隆到另一个集合中。最后,将DataGrid重新绑定到那些克隆的对象,并重新设置窗口的DataContext,以便DataGrid意识到绑定更改。最后,实现一个检查,这样如果用户离开并清空文本框,您就可以重新绑定到原始集合并重新设置DataContext 希望这有帮助;) 没有“开箱即用”功能,您必须创建自己的功能 我建议:
- 听键盘(例如,当焦点在DG上时)
- 将损坏的钥匙存储在缓冲区内
- 每次击键后,循环数据源中的每个单元格以查找第一个匹配项(取决于数据大小,这可能非常昂贵,因为在最坏的情况下,必须对数据源中的每个单元格进行字符串比较…)
- 将dataGrid的currentCell设置为给定的行/列位置(有几种方法)
因此,这并不复杂,但需要一些编码,最重要的是,如果您有庞大的数据集,这可能会成为性能噩梦。非常感谢您的回答。我将创建一个原型,以确定这是否可行,并执行。实际上,我目前正在寻找一种方法来选择一个元素。不过,这也是要求之一:)谢谢!我很高兴你喜欢它。我过去也遇到过类似的问题,这就解决了:)