在WPF ListView中一次显示多个列表?

时间:2018-05-06 23:50:58

标签: wpf listview data-binding wpf-controls

假设我有一个无限量的Branch对象,每个对象都有一个List和该分支的员工。 我现在想要在一个ListView元素中列出按其各自分支分组的所有分支的所有员工 我提出的唯一解决方案是遍历所有分支,拉动他们的员工并将它们放在一个单独的列表中,然后我将其用作ListView的ItemsSource。是否有更简单和/或更有效的方式?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你有一个对象列表,它的属性中有另一个列表。而且你需要所有内部列表的总和。

请参阅SelectMany

您可以像

一样使用它
MyList.SelectMany(item=>item.OtherLists);

它为你提供了所有OtherList元素的总和。

有关分组,请参阅GroupBy

你可以像那样使用它

Innerlist.GroupBy(item=>item.Id)

你应该先使用GroupBy,稍后再根据你的问题使用SelectMany,比如

Branches.GroupBy(branch=>branch.Name).SelectMany(item=>item.Employees)

你可以把它们放在一个列表中(然后绑定它们),或者只设置ItemsSource。