【发布时间】:2021-11-08 20:14:36
【问题描述】:
我无法使用 linq 和 textbox 过滤列表框数据。当我在文本框中输入要过滤的文本时,列表框的值不会改变。这个函数很重要,这样我就可以将数据发送到另一个包含列表框的表单。
public void GetList(List<SemesterDetails> modules)
{
string filter = txtFilter.Text;
foreach (var item in modules.Where(m => m.ModuleName.Contains(filter)))
{
LstModules.Items.Add(item);
}
}
我尝试将函数调用到文本框事件函数:
private void txtFilter_TextChanged(object sender, TextChangedEventArgs e)
{
List<SemesterDetails> semesters = new List<SemesterDetails>();
GetList(semesters);
}
结果是: 列表框中的项目保持未过滤状态。
【问题讨论】:
-
在
GetList(semesters);之前设置断点并检查semesters。 -
semesters是一个空列表,因此没有任何要过滤的内容。 -
在过滤器中添加项目之前,您应该考虑清除列表框。
-
当我之前添加清除列表框时,我没有得到任何项目
-
根据你的帖子,这就是你想要的。我们不知道您从哪里获得
semesters列表,因为您只是创建一个空列表并将其传递给GetList。