解决ListView1的界面数据与内存不一致问题,将内存数据更新到界面上
2013-03-04 21:01
281 查看
目的:解决内存中的数据与界面上不一致,可以将内存中的正确数据更新到界面上(可以进一步实现在线用户排名靠前等相关功能)
调用方式:
ListView1.ListViewItemSorter=newListViewColumnSorter();
publicclassListViewColumnSorter:System.Collections.IComparer
{
privateintColumnToSort;//指定按照哪个列排序
privateSystem.Windows.Forms.SortOrderOrderOfSort;//指定排序的方式
privateSystem.Collections.CaseInsensitiveComparerObjectCompare;//声明CaseInsensitiveComparer类对象,
publicListViewColumnSorter()//构造函数
{
ColumnToSort=0;//默认按第一列排序
OrderOfSort=System.Windows.Forms.SortOrder.None;//排序方式为不排序
ObjectCompare=newSystem.Collections.CaseInsensitiveComparer();//初始化CaseInsensitiveComparer类对象
}
//重写IComparer接口.
//<returns>比较的结果.如果相等返回0,如果x大于y返回1,如果x小于y返回-1</returns>
publicintCompare(objectx,objecty)
{
intcompareResult;
ListViewItemlistviewX,listviewY;
//将比较对象转换为ListViewItem对象
listviewX=(ListViewItem)x;
listviewY=(ListViewItem)y;
//比较
compareResult=ObjectCompare.Compare(listviewX.SubItems[ColumnToSort].Text,listviewY.SubItems[ColumnToSort].Text);
//根据上面的比较结果返回正确的比较结果
if(OrderOfSort==System.Windows.Forms.SortOrder.Ascending)
{//因为是正序排序,所以直接返回结果
returncompareResult;
}
elseif(OrderOfSort==System.Windows.Forms.SortOrder.Descending)
{//如果是反序排序,所以要取负值再返回
return(-compareResult);
}
else
{
//如果相等返回0
return0;
}
}
///获取或设置按照哪一列排序.
publicintSortColumn
{
set
{
ColumnToSort=value;
}
get
{
returnColumnToSort;
}
}
///获取或设置排序方式.
publicSystem.Windows.Forms.SortOrderOrder
{
set
{
OrderOfSort=value;
}
get
{
returnOrderOfSort;
}
}
}
关于listview1的列表更新,如果要做到无刷新更新,不能使用listview1.Items.Clear();或listview1.Clear();
而是应该一个个判断,哪些需要更新或者替换,如果是要替换的项,则可以remove一个,然后insert一个
总体上看不出来频繁刷新;
相关文章推荐
- 解决ListView1的界面数据与内存不一致问题,将内存数据更新到界面上
- 测试代码,解决java gui swing多线程界面假死、僵死问题,实现界面动态刷新,动态同步更新数据
- 用SynchronizationContext解决界面的更新线程数据问题
- 关于CListCtrl控件更新Item的闪烁问题和一次插入大容量数据的显示问题解决办法
- linq更新部分数据时遇到的问题及解决办法
- OLEDB方式操作规则EXCEL的字符串的完整写法(解决标题行和列数据类型不一致的问题)
- 解决coreseek 数据更新 却索引不到的问题
- 解决HTTP数据不更新问题——no-cache在HTTP通信协议中的应用
- 解决SpringBoot更新数据到MySQL乱码问题
- 解决项目中由于前端页面数据类型跟数据库类型不一致,导致获取数据为空引起问题
- 如何解决PHP里大量数据循环时内存耗尽的问题
- jquery 请求ie缓存,数据不更新的问题【ajax禁用缓存解决ie数据不更新的问题】
- 解决spring boot接收前端传递过来的json数据时,接收到的时间与实际传递时间不一致的问题
- jquery 请求ie缓存,数据不更新的问题【ajax禁用缓存解决ie数据不更新的问题】
- 关于解决JQuery发送Ajax请求后,IE缓存数据不更新的问题
- 解决H3C防火墙双出口做端口映射,数据来回路径不一致问题
- 解决SpringBoot更新数据到MySQL乱码问题
- 解决mysqldb查询大量数据导致内存使用过高的问题
- 解决Solr对Mysql做数据导入时内存溢出的问题
- mysql 并发下数据不一致的问题分析及解决