【发布时间】:2010-05-06 13:16:19
【问题描述】:
我有一个 Windows 窗体应用程序 (C#),其中包含一个列表框,我在其中添加了一些项目(我没有使用数据源)。我想过滤 ListBox 中的项目以仅显示包含我正在搜索的字符串的项目。
我通过保留原始项目列表并在每次搜索字符串更改并更新 ListBox.Items 时从该列表中选择匹配项目来做到这一点
有没有更优雅/高效的方法来做到这一点?
【问题讨论】:
标签: c# winforms data-binding
我有一个 Windows 窗体应用程序 (C#),其中包含一个列表框,我在其中添加了一些项目(我没有使用数据源)。我想过滤 ListBox 中的项目以仅显示包含我正在搜索的字符串的项目。
我通过保留原始项目列表并在每次搜索字符串更改并更新 ListBox.Items 时从该列表中选择匹配项目来做到这一点
有没有更优雅/高效的方法来做到这一点?
【问题讨论】:
标签: c# winforms data-binding
有没有更优雅/高效的方法?
不,不是。
您可以通过具有 Filter 和 Sort 属性的 BindingSource 进行连接,但这不适用于简单的 List。所以你必须使用像 DataTable 这样的东西,这不会是一种改进。
您当前的方法看起来不错,尤其是如果您可以使用 LINQ 过滤列表。
但我希望您不要每次都循环遍历 Items 属性,只需将过滤后的列表分配给 Listbox1.DataSource。
【讨论】:
这是一篇可能与您的问题相关的帖子,即使它已被回答。
【讨论】: