【问题标题】:WinForms ObjectListView Select all checkbox in header not workingWinForms ObjectListView 选择标题中的所有复选框不起作用
【发布时间】:2019-06-28 13:51:34
【问题描述】:

我正在使用 ObjectListView 2.9.1.1072 创建一个列表,每行都有一个复选框。对于第一列,我将 HeaderCheckbox 和 HeaderCheckboxUpdatesRowCheckboxes 设置为 true。但是,当我单击列标题中的复选框时,它并没有按照应有的方式检查/取消选中列表中的所有项目(实际上它根本没有做任何事情)。我错过了什么吗?文档充其量是粗略的,网站上的食谱页面也不是很有帮助。

【问题讨论】:

    标签: c# winforms objectlistview


    【解决方案1】:

    这只是通过向我的模型类添加公共覆盖 int GetHashCode() 和 Equals() 方法(后者使用 GetHashCode 来解决两个对象的相等性)来解决。 ObjectViewList 似乎使用这些方法来维护列表项的检查状态。如果文档使这一点更清晰一点,那就太好了。如果缺少其中任何一个,则无法正常工作。

    【讨论】:

    • 你的模型有基类吗? HeaderCheckBox / HeaderCheckBoxUpdatesRowCheckBoxes 不需要 GetHashCode / Equality,因为 System.Object 上的默认实现将起作用。您可以通过创建有缺陷的 GetHashCode 实现来破坏它(例如,返回一个随机数)。我唯一一次看到你明确想要实现相等的地方是,如果你正在对新实例进入的场景(例如,在检查的处理程序中)的对象集合进行更改(例如,从数据库中),你认为它是同一个对象,但 olv/c# 不是。
    猜你喜欢
    • 1970-01-01
    • 2013-07-26
    • 2015-11-27
    • 2014-06-20
    • 2018-09-15
    • 2011-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多