versuchen diesen Code:
var afters = ctx.headers.SkipWhile(((x, index) => index <= currentItemIndex))
.TakeWhile((x, index) => index != ctx.headers.Count()-1).ToList();
for (int i = currentItemIndex+1, j=0; j < afters.Count; i++ ,j++)
{
var befores = ctx.headers.TakeWhile((x, index) => index <i);
afters[j].BeforeSSAmount = befores.SelectMany(x => x.StationStateItem).Sum(x => x.Amount);
}
Edited für den Einsatz in Wpf Listcollectionview:
var afters = header.DataSource.Cast<StationStateHdr>().SkipWhile(((x, index) => index <= header.DataSource.CurrentPosition))
.TakeWhile((x, index) => index != header.DataSource.Cast<StationStateHdr>().Count()-1).ToList();
for (int i = header.DataSource.CurrentPosition+1, j=0; j < afters.Count; i++ ,j++)
{
var befores = header.DataSource.Cast<StationStateHdr>().TakeWhile((x, index) => index <i);
afters[j].BeforeSSAmount = befores.SelectMany(x => x.StationStateItem).Sum(x => x.Amount);
}
oder diesen Code:
var listOfStationStateHdr = header.DataSource.Cast<StationStateHdr>();
listOfStationStateHdr.SkipWhile(((x, index) => index <= header.DataSource.CurrentPosition))
.TakeWhile((x, index) => index != header.DataSource.Cast<StationStateHdr>().Count() - 1).ToList().ForEach(x =>
{
x.BeforeSSAmount = listOfStationStateHdr.TakeWhile(y => y.Id < x.Id).SelectMany(b => b.StationStateItem).Sum(s => s.Amount);
});
oder
var sumCurrent = CurrentStationStateHdr.StationStateItem.Sum(t => t.Amount);
var listOfStationStateHdr = header.DataSource.Cast<StationStateHdr>().ToList();
double? nextItembeforeSSAmount = listOfStationStateHdr[header.DataSource.CurrentPosition + 1].BeforeSSAmount;
listOfStationStateHdr.SkipWhile(((x, index) => index <= header.DataSource.CurrentPosition))
.TakeWhile((x, index) => index != header.DataSource.Cast<StationStateHdr>().Count() - 1).ToList().ForEach(x =>
{
x.BeforeSSAmount += sumCurrent - nextItembeforeSSAmount;
});
sollten Sie zuerst versuchen ... Sie immer Fragen und beantwortet keine fragen. –
Sie möchten beide Tabellen richtig aktualisieren .. ?? mach es manuell. Oder atleast Zeigen Sie uns Ihre Objektklassen für diese. Zeigen Sie auch die Funktion, wo Sie Table StationStateItem aktualisieren –
Ich möchte BeforeSSAmount in der StationStateHdr Tabelle aktualisieren, wenn ich Amout in StationStateItem Tabelle ändern und auf Speichern klicken. –