Нет, необходимо именно агрегировать данные.
Но я никак не могу понять, какие изменения необходимо ввести. Нужно создать новую коллекцию, к которой будет биндиться таблица?
Что-то вроде ObservableCollection GroupedStatistics в которой создать один лишь геттер с this.statisticsCollection.GroupBy(...).Select(...)?
Если так, то ничего не получается. Данных никаких вообще не возвращается.
Проще. но будут ли результаты показательными? Таким же образом я могу провести это исследование и в домашних условиях, добавив большое количество пользователей.
Армянское Радио: если я правильно понимаю вопрос, то да, использую. На сколько мне известно, lidgren (а на сервере используется именно эта библиотека в связке с C#) это умеет.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
{
private DispatchingObservableCollection statisticsCollection;
private DispatchingObservableCollection statisticsGrouped;
public StatisticsViewModel(INetwork network)
{
this.statisticsCollection = new DispatchingObservableCollection();
network.Service.Statistics += stats => this.StatisticsCollection.Add(Mapper.Map(stats));
}
public DispatchingObservableCollection StatisticsGrouped
{
get { return this.statisticsGrouped; }
set { this.Set("StatisticsGrouped", ref this.statisticsGrouped, value); }
}
public DispatchingObservableCollection StatisticsCollection
{
get
{
var grouped =
this.statisticsCollection.GroupBy(x => x.Time)
.Select(
x =>
new StatisticsModel
{
Time = x.First().Time,
IncomingTraffic = x.Sum(y => y.IncomingTraffic),
OutcomingTraffic = x.Sum(y => y.OutcomingTraffic)
});
this.StatisticsGrouped = new DispatchingObservableCollection(grouped);
return this.statisticsCollection;
}
set { this.Set("StatisticsCollection", ref this.statisticsCollection, value); }
}
}
Привел ViewModel к такому виду, все работает как и задумывалось. Но теперь не нравиться код. Похоже, эту проблему можно было решить красивее.