在ListView中(ViewType = Details),这个ListView和资源管理器一样,
问题是:在没有运行 listView1.Sorting = SortOrder.Ascending 或
listView1.ListViewItemSorter = new ListViewItemComparer(e.Column);其中任何
一个之前,也就是还没进行排序,重命名ListViewItem,item在ListView中的显示正常,
在排序之后再重名,被重命名Item正常,但他的前一项或后一项就不正常了,须手动刷新
(在重命名代码后有刷新代码,但没用),下面是不正常的现象:
Item1.text = "aa"
Item2.text = "cc"
item3.text = "ee"
item4.text = "gg"
情况一:
重命名(ListViewItem.BeginEdit();)item3.text = "bb"
这时经过排序item3到第二项item2成为第三项,但item2.text = "bb"
情况二:
重命名(ListViewItem.BeginEdit();)item3.text = "hh"
这时经过排序item3到最后项item4成为第三项,但item4.text = "hh"
只有在手动点击刷新后item2或item4的text恢复正常。
在重命名前已将 listView1.Sorting = SortOrder.None
另外item的值都是XML获取的,重命名是重写XML然后重新从XML加载item的值。这个该怎么办啊?请大家帮忙啊

解决方案 »

  1.   

    我也遇到类似的问题,就是datagridview死活不能自动刷新,
    而相同的代码拷到新建的工程里面去确正常刷新
    或者另一种在别的工程里面刷新的办法拷到这个工程居然又是不能刷新
    后来我使用timer控件在刷新之后的0.1秒后再刷新一次,这样看起来刷新的有点延迟,但没办法,
    搜索了整个互联网没有类似的个案之后,我把它视为bug
      

  2.   

    oolongTea(江山留胜迹,我辈复登临。) 
    谢谢你的建议,不过我没这么做,因该是我的刷新代码写的有问题,
    我把刷新去掉就好了。问题解决。