Отображать несколько списков одновременно в WPF ListView? - PullRequest
0 голосов
/ 07 мая 2018

Допустим, у меня есть неопределенное количество объектов Филиалов, и у каждого из них есть Список с сотрудниками этого филиала. Теперь я хочу перечислить всех сотрудников всех филиалов, сгруппированных по соответствующим филиалам, в один элемент ListView.
Единственное решение, которое я придумаю, - это пройти через все ветви, вытащить их сотрудников и поместить их в отдельный список, который я затем использую в качестве ListSource для ListView. Есть ли более простой и / или более эффективный способ?

1 Ответ

0 голосов
/ 07 мая 2018

Если я правильно понимаю, у вас есть список объекта, и у него есть другой список в его свойствах.И вам нужна сумма всех внутренних списков.

См. SelectMany

Вы можете использовать его как

MyList.SelectMany(item=>item.OtherLists);

, он дает вам сумму всех списков OtherListelements.

Для группировки см. GroupBy

, и вы можете использовать его следующим образом:

Innerlist.GroupBy(item=>item.Id)

сначала вы должны использовать GroupBy, позже SelectMany,в зависимости от вашего вопроса, что-то вроде

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

, и вы можете поместить их в список (и связать их), или просто установить ItemsSource.

...