日期:2014-05-18  浏览次数:20834 次

listView的动态刷新问题(还有一个异步问题,请大神~~)
我有一个listView,是用来显示监视列表的,它的数据在一个list_show函数中通过从一个List<user_info>中读取并实现显示(我要动态的刷新已经存在的数据的变化以及新增的数据)。而List<user_info>由data_report函数来实现更新。
  暂时,我是在data_report函数中回报完数据后再加上list_show(user_info)(这里的异步实现也想请教一下)主动呼叫list_show函数来重新刷新一次listview。
问题是:1.由于data_report函数是高频率触发的,我的listview的显示方式是不是有问题,可不可以绑定数据源这样会不会更高效?如何做?
我的代码:
C# code

...
//
...
foreach(user_info info in list_info)
 {
  ...
//一些其实它的数据过滤
  ...
  string count = (listView1.Items.Count + 1).ToString();
  ListViewItem item = new ListViewItem(count);
  item.SubItems.Add(user_info.name);
  item.SubItems.Add(user_info.age);
  item.SubItems.Add(user_info.status);
  listView1.Items.AddRange(new ListViewItem[] { item });
 }


  2.由于我的data_report函数被封装在一个DLL里,那么异步的呼叫form中的list_show(user_info)应该怎么样实现?
  我现在的方法是在form里先写一个list_delege的函数,然后由这个函数异步调用list_show(user_info),
  而在data_report里触发list_delege(user_info).我的初衷是直接在DLL里异步的完成list_show函数.现在多了中间的
  一步,我很不喜欢.

------解决方案--------------------
INotifyCollectionChanged+INotifyChanged under WPF