c# – 过滤Listview中的项目
发布时间:2020-12-16 00:23:06 所属栏目:百科 来源:网络整理
导读:我试图通过使用TextBox过滤ListView中的项目. 我已经设法制作了一些东西,但它只能从我的列表视图中删除项目,而不是将它们带回来.这是我的代码的一个小例子: private void textBox1_TextChanged(object sender,EventArgs e){ string value = textBox1.Text.T
我试图通过使用TextBox过滤ListView中的项目.
我已经设法制作了一些东西,但它只能从我的列表视图中删除项目,而不是将它们带回来.这是我的代码的一个小例子: private void textBox1_TextChanged(object sender,EventArgs e) { string value = textBox1.Text.ToLower(); for (int i = listView1.Items.Count - 1; -1 < i; i--) { if (listView1.Items[i].Text.ToLower().StartsWith(value) == false) { listView1.Items[i].Remove(); } } } 有没有人知道如何检索已删除的项目?我似乎无法弄清楚>:…… 解决方法
检查以下示例应用
using System; using System.Windows.Forms; using System.Collections.Generic; using System.Linq; public partial class Form1 : Form { // keep list of listview items List<Data> Items = new List<Data>(); public Form1() { InitializeComponent(); // get initial data Items = new List<Data>(){ new Data(){ Id =1,Name ="A"},new Data(){ Id =2,Name ="B"},new Data(){ Id =3,Name ="C"} }; // adding initial data listView1.Items.AddRange(Items.Select(c => new ListViewItem(c.Name)).ToArray()); } private void textBox1_TextChanged(object sender,EventArgs e) { listView1.Items.Clear(); // clear list items before adding // filter the items match with search key and add result to list view listView1.Items.AddRange(Items.Where(i=>string.IsNullOrEmpty(textBox1.Text)||i.Name.StartsWith(textBox1.Text)) .Select(c => new ListViewItem(c.Name)).ToArray()); } } class Data { public int Id { get; set; } public string Name { get; set; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |