Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 键入时wpf datagrid只读跳转到行_C#_Wpf_Datagrid - Fatal编程技术网

C# 键入时wpf datagrid只读跳转到行

C# 键入时wpf datagrid只读跳转到行,c#,wpf,datagrid,C#,Wpf,Datagrid,在显示表格数据的只读datagrid中,我希望在用户键入某些字符时具有(开箱即用)跳转到行的功能 假设以下记录可用: 。。。一些数据 办公用品 命令 。。。更多数据 当用户在“O”中键入时,应选择ID为“Office supplies”的行。当用户在此之后键入“r”时,应选择“订单”行 实际上,我的问题是:是否有现成的解决方案,或者我必须创建一些自定义内容?您几乎必须为搜索输入创建一个文本框,然后使用LINQ(或您喜欢的任何其他方式)过滤您的DataGrid绑定到的集合并将生成的对象克隆到另

在显示表格数据的只读datagrid中,我希望在用户键入某些字符时具有(开箱即用)跳转到行的功能

假设以下记录可用:

  • 。。。一些数据
  • 办公用品
  • 命令
  • 。。。更多数据
当用户在“O”中键入时,应选择ID为“Office supplies”的行。当用户在此之后键入“r”时,应选择“订单”行


实际上,我的问题是:是否有现成的解决方案,或者我必须创建一些自定义内容?

您几乎必须为搜索输入创建一个文本框,然后使用LINQ(或您喜欢的任何其他方式)过滤您的DataGrid绑定到的集合并将生成的对象克隆到另一个集合中。最后,将DataGrid重新绑定到那些克隆的对象,并重新设置窗口的DataContext,以便DataGrid意识到绑定更改。最后,实现一个检查,这样如果用户离开并清空文本框,您就可以重新绑定到原始集合并重新设置DataContext

希望这有帮助;)

没有“开箱即用”功能,您必须创建自己的功能

我建议:

  • 听键盘(例如,当焦点在DG上时)
  • 将损坏的钥匙存储在缓冲区内
  • 每次击键后,循环数据源中的每个单元格以查找第一个匹配项(取决于数据大小,这可能非常昂贵,因为在最坏的情况下,必须对数据源中的每个单元格进行字符串比较…)
  • 将dataGrid的currentCell设置为给定的行/列位置(有几种方法)

因此,这并不复杂,但需要一些编码,最重要的是,如果您有庞大的数据集,这可能会成为性能噩梦。

非常感谢您的回答。我将创建一个原型,以确定这是否可行,并执行。实际上,我目前正在寻找一种方法来选择一个元素。不过,这也是要求之一:)谢谢!我很高兴你喜欢它。我过去也遇到过类似的问题,这就解决了:)