我更新数据时没有出现闪屏,而是数据再次重新加入,而前面的却没有删除掉
如果不用List.DeleteAllItem() 这个方法。还有没有其它的???

解决方案 »

  1.   

    每次更新时,如果列表中已经有若干行,则用SetItemText进行替换,而不是删除后插入。
    如果更新后的行数比原有行数多,那么很好,原有的行用SetItemText,新的行用InsertItem
    如果更新后的行数比原有行数少,那么也不错,原有的行用SetItemText,多出来的行用DeleteItem
    这样应该比先DeleteAllItem,然后InsertItem的效果要强。
      

  2.   

    为什么不懂呢?你的列表中本来有数据,如果先删除,再添加,必然会变化两次。
    当然,楼上也说了一些招,比如判断没有变化的行,就不必更新了。这需要根据具体情况,如果确实每次刷新变化量很小,那么这么做就很好。如果每次更新变化量很大,或者都发生变化。那么,我得方法是:
    先不删除列表中现有的行。假设列表中有10行,你现在新更新的数量是12行。那么,对于新数据中的前10条,直接用SetItemText函数替换列表中已有的10行数据,不就改过来了吗?只需要发生一次变化。对于剩余的两条,则用InsertItem在后面插入,那么变化也只发生一次。