WPF将搜索功能添加到列表

时间:2019-01-29 07:30:44

标签: c# wpf listview

我创建了一个“学徒”类型的列表,其中名称,ID和职业等内容存储在每个“学徒”对象中。在WPF中,我在列表视图中显示学徒及其照片和姓名。现在,我添加了一个文本框,您可以在其中搜索学徒的姓名。到目前为止,我所得到的只是这个:

private void TextBox_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e)
    {
        SortedListByName.Find(x => x.Name == searchBox.Text);
    }

当我完全正确地输入姓名(例如“ John Doe”)时,这会找到我的学徒。我希望它可以过滤每个学徒如果不是以给定字母开头的情况。例如,列表中是“ John Doe”,“ Jane Doe”,“ Michael Myers”和“ Freddie Krueger”。当我开始输入'D'时,将不再显示“ Michael Myers”和“ Freddie Krueger”,只有John和Jane,因为他们的姓氏以'D'开头。或者,按名称中的每个相似性搜索列表。如果我输入“ ers”,那么它将显示“ Michael Myers”。但是我不知道如何开始

1 个答案:

答案 0 :(得分:2)

private void TextBox_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e)
{
    SortedListByName.Where(x => x.Name.ToUpper().StartsWith(searchBox.Text.ToUpper());
}

在其中ToUpper()允许您查找忽略大小写的项目。 此功能将为您提供一系列输出,这些输出从您在文本框中输入的字符开始。您可以选择使用Contains()或EndsWith()方法替换StartsWith()方法