如何检查每个ListView组中除上次修改的文件以外的所有文件? C#

时间:2019-03-23 14:22:31

标签: c# listview

如何选中每个ListView组中除上次修改的文件以外的所有文件的复选框?

我已经在C#中的多列ListView1中以编程方式创建了500个文件的列表:

File Name , Author , Last Modified Date (Total 3 Columns)

Group 1: (All files with John as Author)
--------
File1.txt, John, 17-01-2019 8:09:21 PM
File4.jpg, John, 20-01-2019 5:04:21 PM
File6.docx, John,25-12-2014 3:02:40 AM

Group 2: (All files with Muller as Author)
--------
File2.txt, Muller, 13-07-2013 2:02:21 AM
File3.jpg, Muller, 10-04-2012 4:04:21 AM
File5.docx, Muller, 15-10-2016 8:04:40 PM
File7.png, Muller, 20-03-2019 4:15:20 PM
File8.xml, Muller, 10-06-2015 8:40:00 AM

Group 3:
...............
and the list goes on...

我想以编程方式检查每个组中除“上次修改的文件”之外的所有文件的复选框。我用不同的代码尝试了好几个小时,没有运气。

非常感谢您的帮助。

foreach (ListViewGroup grp in listFiles.Groups)
    {
      bool FirstItem = false;
        foreach (ListViewItem item in grp.Items)
        {
            if (!FirstItem)
            {
                item.Checked = false;
                FirstItem = true;
            }
            else
            {
                item.Checked = true;
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

保留两个变量,last和curr,最初为null。对于每个项目,设置curr = item,如果curr的上次修改日期晚于prev的上次修改日期,或者last为空,则设置last = curr。在此循环结束时,last是具有最后修改日期的项目。进行另一个循环并检查除最后​​一个以外的所有内容。

您可以单步执行此操作,但我将其保留为练习。