я имею, ObservableCollection и WPF UserControl Связаны с данными к нему. Управление является графиком, который показывает вертикальную панель для каждого предмета типа BarData в ObservableCollection.
ObservableCollection<BarData>
class BarData
{
public DateTime StartDate {get; set;}
public double MoneySpent {get; set;}
public double TotalMoneySpentTillThisBar {get; set;}
}
Теперь я хочу разобраться в ObservableCollection на основе StartDate так, чтобы BarData был в увеличивающемся порядке StartDate в наборе. Затем я могу вычислить значения TotalMoneySpentTillThisBar в каждом BarData как это -
var collection = new ObservableCollection<BarData>();
//add few BarData objects to collection
collection.Sort(bar => bar.StartData); // this is ideally the kind of function I was looking for which does not exist
double total = 0.0;
collection.ToList().ForEach(bar => {
bar.TotalMoneySpentTillThisBar = total + bar.MoneySpent;
total = bar.TotalMoneySpentTillThisBar;
}
);
я знаю, что могу использовать ICollectionView для вида, данных фильтра для просмотра, но это не изменяет фактический набор. Я должен отсортировать фактический набор так, чтобы я мог вычислить TotalMoneySpentTillThisBar для каждого предмета. Его значение зависит от порядка пунктов в наборе.
Спасибо.