Здравствуйте!
UWP. Пытаюсь сделать группированный список с помощью CollectionViewSource. Надо сделать так, чтобы в группировках отображалась итоговая сумма по группировке. Помогите, пожалуйста, изменить запрос, чтобы в итоговых строках были итоговые суммы:
void Main()
{
List<Store> storeList = new List<Store>();
storeList.Add(new Store(){Name = "Склад", StoreType = "Type1", Quantity = 100});
storeList.Add(new Store(){Name = "Склад 2", StoreType = "Type1", Quantity = 200});
storeList.Add(new Store(){Name = "Склад 3", StoreType = "Type2", Quantity = 150});
var result = from act in storeList group act by act.StoreType into grp orderby grp.Key select grp;
foreach (var item in result)
{
Console.WriteLine($"{item.Key,-15}");
foreach (var item2 in item)
{
Console.WriteLine($"{item.Key,25}");
}
}
// Keep the console window open in debug mode.
Console.WriteLine("\nPress any key to exit");
}
public class Store
{
public string Name { get; set; }
public string StoreType { get; set; }
public int Quantity { get; set; }
}
Вот примерно так надо бы:
Можно сделать что то подобное:
var categoryCounts =
from s in storeList
group s by s.StoreType into g
select new { Category = g.Key, StoreCount = g.Sum(c=>c.Quantity), Items = g.ToList()};
То есть мы берем нашу коллекцию, в ней группируем по StoreType
, затем формируем все в удобном для нас виде, где выводим имя группы, общую сумму, а также элементы, которые в нашей группе.
Повозился с выводом (в новинку для меня это позиционирование текста) и добился нужного результата:
foreach (var group in categoryCounts)
{
Console.Write($"{group.Category,-15}");
Console.Write($"{group.StoreCount,15}");
foreach (var item in group.Items)
{
Console.WriteLine();
Console.Write($"{item.StoreType,15}");
Console.Write($"{item.Quantity,15}");
}
Console.WriteLine();
}
На выходе:
Type1 300
Type1 100
Type1 200
Type2 150
Type2 150
Вот как теперь показывается:
Использую такой код для ресурсов:
<Page.Resources>
<CollectionViewSource
x:Name="AccountTypeOfCollection"
Source="{x:Bind MyStoreList}"
IsSourceGrouped="true"
ItemsPath="MyStoreList.Items"/>
<CollectionViewSource x:Name="cvsActivities" IsSourceGrouped="True"/>
<local:ListGroupStyleSelector x:Key="listGroupStyleSelector"/>
</Page.Resources>
Как исправить, чтобы показывались детальные записи по каждой группе?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Пользователь вводит текстЕсли слово заканчивается на гласную, то заменить окончание на "program"(c #)
Есть конфликт приведенного внизу кода скрипта с частью кода из bootstrapmin