zoukankan      html  css  js  c++  java
  • C# ListView 虚拟模式(VirtualMode)下的 坑 ?

    M$ 的 ListView 总感觉是一个未完成品。

    折腾了一天,5个多小时,刚才在stackoverflow 上才找到原因:https://stackoverflow.com/questions/15875525/listviewitem-image-not-being-shown-on-a-virtual-listview

    很伤感,时间这样被浪费。

    问题是这样的,我的 ListView 想用 virtualMode,所以,我开了一个测试工程来试验 ListView。结果,在大图模式下,原来在正式程序下正常的显示的缩略图,没了。

    只有文字。

    用尽了各种方法。

    最后才根据上面明确,在虚拟模式下,ListViewItem.ImageIndex 有用,而 ListViewItem.ImageKey 是无效的。

    然而,若是你在普通模式下用过 ImageKey 才会发现,它是真的好用。

    真的很想打人。。。其实有一下下子我也想到去试一下这个,但还是没试,因为毕竟用 Key 会比 Index 方便多了,特别是涉及到 Item 顺序交换更改时。

    ===2020.12.3=== 补充====

    这个坑还在踩。。在虚拟模式下,不得不用 ImageIndex 后,我发现,当你从 Details 切换到 LargeIcon 时,M$ 会把那些 ListViewItem.ImageIndex 都设置为 -1。对,这是我要的效果,然而。。。然而。。骚操作来了,当 RetriveListViewItem 调用过一次,并且你在这里为 第一次请求的 Index 对应的 ImageIndex 设置上一个大图索引后。。当 第二个 RetriveListViewItem 触发后,你会发现,整个 ListViewItem 数组(若原来你保留着它们) 中每一个 ListViewItem.ImageIndex 都变成了 0 !!!! WTF,你没有请求其它的 Index ,你去改他们的 ImageIndex 做什么?留着 -1 不是很幸福吗?

    这应该是 M$ 的一个 BUG了。。。如果再继续在下一次 RetriveListViewItem 时修改 那个 Index 对应的  ListViewItem.ImageIndex,你就会发现。。其它没 RetriveListViewItem 过的 ImageIndex 都变成了那个 新的值!!!!

    好在,我终于想到了办法来绕过这个M$ 的 “BUG”。

  • 相关阅读:
    iPhone 调用Web Service 例子(转)
    iPhone开发:在UIAlertView中显示进度条(转)
    Oracel 分页
    NYOJ 477
    NYOJ 108(数组中存的是前n个数的和)
    NYOJ 199
    NYOJ 311(完全背包)
    高效斐数(前92位)
    NYOJ 57(6174问题)
    NYOJ 546(分珠宝)
  • 原文地址:https://www.cnblogs.com/pencilstart/p/14058988.html
Copyright © 2011-2022 走看看