我需要显示一个实时刷新的数据在Listview 上面,但是按照网上的资料是可以更新数据了,但是不能实时的刷新,点中Item才可以显示出来,请教一下有遇到过此类问题吗?https://www.cnblogs.com/cadlife/articles/2257784.html
解决方案 »
- C# 蓝牙传输文件,经常传到一半就不传了
- oldb读取txt文件
- dll中能包含注释信息吗?
- C# 多图同时显示,如何让图片一副一副显示?
- 请高手讲讲,串行化有什么用处?
- AxMediaPlayer高低手都过来,听说CSDN高手多,不要让我失望啊
- 新装的VS.net 2005 ,但不能用Debug, 求助!
- 如何用visual c# 动态地创建mdb数据库和在mdb数据库中动态地创建表?
- 如何使winform里的datagrid里的列里的内容自动换行以使其能自动显示全部内容?
- 元旦到了,大家互赠分数如何?
- inthehand 类库为什么没有官方下载啊
- C#内存文件映射物理内存和虚拟缓存都上涨的原因
refresh 、 invalidate 都是可以的, 但是界面刷新太快了,闪眼,当时使用虚拟模式就是为了解决这个更新数据太快的问题不知道有什么设置可以解决这个问题
谢谢
this.CurrentCacheItemsSource = this.ItemsSource;
LoadListViewItems(this.CurrentCacheItemsSource); private void LoadListViewItems(List<ListViewItem> items)
{
listView.Items.Clear();
if (items == null)
{
stripStatusInfo.Text = "当前总共记录数为:0";
return;
}
listView.GridLines = true;
listView.FullRowSelect = true;
listView.View = View.Details;
listView.Scrollable = true;
listView.MultiSelect = false;
listView.HeaderStyle = ColumnHeaderStyle.Clickable;
listView.Visible = true;
listView.VirtualListSize = items.Count;
listView.VirtualMode = true;
listView.RetrieveVirtualItem += new RetrieveVirtualItemEventHandler(listView_RetrieveVirtualItem); stripStatusInfo.Text = "当前总共记录数为:" + items.Count;
} void listView_RetrieveVirtualItem(object sender, RetrieveVirtualItemEventArgs e)
{
if (this.CurrentCacheItemsSource == null || this.CurrentCacheItemsSource.Count == 0)
{
return;
} e.Item = this.CurrentCacheItemsSource[e.ItemIndex];
if (e.ItemIndex == this.CurrentCacheItemsSource.Count)
{
this.CurrentCacheItemsSource = null ;
}
}可是cacheItems
之后
listView.Refresh();
listView.Refresh() 一次listview 刷新一次呀,我在线程里面1S 更新一次数据,listview界面看起来就是一闪一闪的 , 双缓冲也试了,还是不行
再说只需对 listview 追加数据即可,并无全部重新添加的必要
listview 所有的数据都会更新,所以只能把items clear 后再重新加载一下更新数据,目前没有好的办法实现,不知道有什么好的办法可以实现,谢谢
很简单,C#教程上都有这样的例子
listView1.Invalidate();