, как отсортировать ObservableCollection

я имею, 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 для каждого предмета. Его значение зависит от порядка пунктов в наборе.

Спасибо.

16
задан Souvik Basu 2 September 2011 в 14:18
поделиться