我有一个直接分配给列表框的列表。我想使用文本框和按钮来搜索列表框的内容,因此在输入单词后,当用户按下按钮时,它将在所有条目的列表框中显示它。例如。如果我键入apple并按Enter,则列表框应显示包含苹果一词的条目。
我已使用以下方式将列表分配给列表框:
Messages.ItemSource = messages;
到目前为止我有
private void button_Click(object sender, EventArgs e)
{
}
但是我不知道在按钮内放什么
答案 0 :(得分:0)
您将要遍历消息的条目(将ItemSource设置为该条目),并对照当前消息检查每个条目。您可以使用Linq Where方法完成此操作。然后,一旦选择了包含所选单词的所有消息,就可以将ItemSource设置为找到的单词的列表。这是一个示例。
public List<string> messages = new List<string>() { "Apple", "Apple Pie", "Apple Jam", "Orange", "Banana" };
public void button_Click(object sender, EventArgs e)
{
var foundList = messages.Where(m => m.Contains(textBox.Text)).ToList();
Messages.ItemsSource = foundList;
}
我目前无法使用Visual Studio,因此我尚未对其进行测试,但是应该是这样的。并且您应该能够将该代码实际添加到TextBoxChanged事件中,以便在您键入时进行更新。
答案 1 :(得分:0)
您可以将项目源设置为CollectionViewSource对象,将对象的源设置为字符串数组,然后为该对象设置一个过滤器,可以在过滤器函数中过滤该元素