【发布时间】:2011-02-08 15:59:44
【问题描述】:
在显示表格数据的只读数据网格中,我希望具有(开箱即用)功能以在用户键入某些字符时跳转到一行。
说有以下记录:
- ...一些数据...
- 办公用品
- 订单
- ...更多数据...
当用户键入“O”时,应选择 ID 为“办公用品”的行。当用户在此之后键入“r”时,应选择“订单”行。
我的问题实际上是:是否有一个开箱即用的解决方案,或者我必须创建一些自定义的东西?
【问题讨论】:
在显示表格数据的只读数据网格中,我希望具有(开箱即用)功能以在用户键入某些字符时跳转到一行。
说有以下记录:
当用户键入“O”时,应选择 ID 为“办公用品”的行。当用户在此之后键入“r”时,应选择“订单”行。
我的问题实际上是:是否有一个开箱即用的解决方案,或者我必须创建一些自定义的东西?
【问题讨论】:
没有“开箱即用”的功能可以做到这一点,您必须自己创建。
我建议:
所以这并不复杂,但它需要一些编码,最重要的是,如果您有大量数据集,这可能会变成性能噩梦。
【讨论】:
您几乎必须为搜索输入创建一个文本框,然后使用 LINQ(或您喜欢的任何其他方式)过滤您的 DataGrid 绑定到的集合,并将生成的对象克隆到另一个集合中.最后,将 DataGrid 重新绑定到那些克隆的对象并重新设置窗口的 DataContext,以便 DataGrid 知道绑定更改。最后,实施检查,如果用户离开并清空文本框,则重新绑定到原始集合并再次重新设置 DataContext。
希望这会有所帮助;)
【讨论】: