日期:2014-05-17  浏览次数:21558 次

c#中ListView如何搜索某个子项,谢谢!!
小弟有个项目,需要在一个控件上显示数据,并且根据数据更新某部分数据。我现在选择ListView,因为据说这个控件比较有效率。
我的数据格式如下:

.....
01班 a b c
01班 b c d
02班 h n j
01班 n n n
.....

一共大概200多条,每条数据整体是唯一的,但是需要较快频率的更新。
问题:
1、比如我现在要更新数据(01班 n n n),我怎么样才能搜索到这个数据的索引号index进行修改?
我查了FindItemWithText(“01班”)方法只能找到第一项,而listview1.Items.Find()虽然可以找到多个返回数组 listview[],但是Find后面的参数和FindItemWithText不一样。请问还有什么办法实现吗?
2、请问实现类似的功能,除了选listview 有更好的选择吗?系统运行的时候每秒都要读取大量的数据,高频率刷新,如果每次都全部重写会闪烁不停。。。

谢谢!!!!!!

------解决方案--------------------
你用个winform还是wpf啊,如果wpf的直接去改绑定的类就行了。
winform的话,实在不行遍历一遍,查出所有,虽然有些慢。不过也可以自己写一个类对控件进行绑定,只修改绑定类的数据也行,要花点时间写。
以前自己用过一个继承dataview的控件,数据就是写了一个类进行绑定,只要改类里的数据就好了
------解决方案--------------------
你还可以用linq
------解决方案--------------------
类似这样的查找
 ListViewItem li = listView1.Items.Cast<ListViewItem>().First(x => x.Text == "01班" && x.SubItems[1].Text == "n" && x.SubItems[2].Text == "n");
if(li!=null)
  //找到了
else
  //没找到

红色部分是你的查询条件