我有一个listView,我想对共享相同ID但不同的SysDate 的项目进行分组,这样我不想显示具有相同值和不同日期的多行,而是只显示多行当ID发生变化时。
实施例
由此:
Session
对于此,只有Sysdate更改为同一行:
ID | Sysdate
1 | 12:00
1 | 12:01
1 | 12:02
2 | 12:03
2 | 12:05
如果添加的当前项目与ID | Sysdate
1 | 12:00
2 | 12:05
中已存在的项目相同,则只更改同一行中的 sysdate ,如果不是然后在listview
。
答案 0 :(得分:0)
您提出的问题无法回答。存在"分组"的概念。在Windows ListView
中,(例如,您在Windows资源管理器中看到的内容,如果您打开"我的电脑"并选择"查看" - >"内容& #34;,)但我不认为你的想法是什么。除了"分组"的概念之外,没有其他定义的"分组"可以在ListView
上执行的操作。
您的问题无法通过分组来定义您的意思,因为对于每组ID(1,2),您选择了一个sysdate来任意显示。 (对于id = 1的情况,你选择了12:00,这是在id = 1的第一行,但是在id = 2的情况下你选择了12:05,这是在id =的第二行2。)
我建议您考虑对数据集的属性进行分组,而不是ListView
的属性。换句话说,首先要仔细考虑分组的含义,然后提出对数据集执行分组的代码,然后将ListView
与分组数据集一起提供。 ListView
无法了解您的分组概念。
答案 1 :(得分:0)
var obj = objTest.OrderBy(x => x.ID).GroupBy(x => x.ID).Select(g => new {g, count = g.Count()}).SelectMany(t => t.g.Select(b=>b).Zip(Enumerable.Range(t.count, 1), (j, i) => new {j.Sysdate, j.ID}));
答案 2 :(得分:0)
如果您的数据对象具有ID和sysdate,以及您如何显示它们,则无法对它们进行分组。现在,如果您的数据对象具有ID和sysdates列表,则ListView中每个ID只会出现1次,并且每个ID都会获得一个sysdates列表。您必须为此编写自己的ViewCell代码。
如果从查询中获取数据对象,则必须自己格式化数据对象。