Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > есть list с объектами. нужно подвести итог (сумму)


Автор: St33l 28.2.2010, 15:52
есть list с объектами. нужно подвести итог (сумму) по каждому свойству и list забиндить dgv
забиндить лист с объектами не проблема. но как сделать, чтобы после списка объектов datagridview добавилась строка "итог" и в каждой ячейке ее была сумма значений всего столбца(сумма значений свойства для объектов)?

Автор: Linus 28.2.2010, 17:36
Для WinForms-DataGridView футер так просто не сделаешь. Можно отключить сортировки всякие, и в коллекцию, на которую биндишься, добавить очередной элемент с суммами. Но если грид будет меняться/соритироваться и т.д., опять натыкаемся на проблемы. Можно сделать контрол, который будет агрегировать 2 грида - это самый простой вариант. Но придется синхронизировать ширины столбцов/прокрутки между двумя гридами. Когда-то делал такой контрол.

Автор: St33l 28.2.2010, 19:47
Цитата

[в коллекцию, на которую биндишься, добавить очередной элемент с суммами.


а как это сделать? ведь у нас в классе не считается сумма. да и свойста класса имеют только метод get, т.к. они являются вычисляемыми на основании неких входных данных.

Автор: mrbrooks 1.3.2010, 09:17
St33l, LINQ to Object

Автор: Linus 1.3.2010, 12:56
угу... Через LINQ примерно так:
Код

IList<Computer> collection = GetComputersCollection();
int ages = collection.Sum(eachComputer=>eachComputer.Age);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)