【问题标题】:How to add invisible items to ListView in C#?如何在 C# 中向 ListView 添加不可见项?
【发布时间】:2011-01-24 17:23:36
【问题描述】:

我将开发一个项目,该项目通过程序 UI 中的 ListView 控件与文件和文件夹进行交互。我已经向列表视图添加了一个自定义排序方法,以根据其不同的列对项目进行排序。列表视图中有一些列,例如大小和日期。大小列包含缩短的大小值,例如“1.9 MB”而不是“2000000”字节,因此无法按缩短的大小值对列表视图项进行排序并获得预期的结果。

有没有什么办法可以在列表视图中添加一些不可见的列来存储额外的值?或者将一些额外的项目绑定到列表视图项目?

【问题讨论】:

    标签: listview


    【解决方案1】:

    您不能有不可见的列,但您可以将不想显示的列的宽度设置为 0。这样,除非用户尝试调整其旁边的列的大小,否则它们不会显示。视觉上用户现在会知道它在那里

    【讨论】:

    • 如果您不希望它们能够“找到”您的隐藏列,请务必覆盖调整大小事件。
    • 谢谢WraithNath,但我正在寻找更好的解决方案。我已将 Vista 主题应用于我的列表视图,现在列表视图显示其零宽度列。 ;)
    • 嗨 maxeemo,您是根据列表视图中的列表项还是在数据源对数据进行排序?您可以使用一些 linq 直接在源中执行排序,但是由于缺少数据源属性,您需要清除并重新填写列表。这会影响性能,但这是使用列表视图的一个缺点。我似乎记得在代码项目上看到了一个数据绑定列表视图,可能也值得一看。
    【解决方案2】:

    有时简单的事情变得如此复杂。 我知道了...一个简单方便的解决方案...

    实际上有可能隐藏项目就像拥有比列更多的子项目一样简单。例如。有 6 个子项和 4 列意味着我们有 2 个“隐藏”子项。唯一剩下的就是将排序过程重定向到这些可排序的隐藏子项(列)。

    感谢 WraithNathRobert Levy...

    【讨论】:

      【解决方案3】:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-18
        • 2013-04-25
        • 1970-01-01
        相关资源
        最近更新 更多