private void DataGridChanged() { foreach (Konto konto in _konten) { konto.ResetUebertraege(); } try { for (int i = 0; i < BuchungsSaetze.Count; i++) { BuchungssatzDataGridEntry buchungssatzEntry = BuchungsSaetze[i]; Konto kontoSoll = _konten.Single(k => k.Name == buchungssatzEntry.Soll); Konto kontoHaben = _konten.Single(k => k.Name == buchungssatzEntry.Haben); float betragSoll = buchungssatzEntry.Betrag; float betragHaben = -buchungssatzEntry.Betrag; if (kontoSoll.Typ == Kontotyp.Fremdkapital || kontoSoll.Typ == Kontotyp.Eigenkapital) { betragSoll = -betragSoll; } if (kontoHaben.Typ == Kontotyp.Fremdkapital || kontoHaben.Typ == Kontotyp.Eigenkapital) { betragHaben = -betragHaben; } if (!kontoSoll.DoUebertrag(betragSoll) || !kontoHaben.DoUebertrag(betragHaben)) { throw new Exception("Der Buchungssatz mit der Nummer " + (i + 1) + " fühte zu einem negativen Schlussbestand " + "in einem der beiden Konten. Die Berechnung wurde gestoppt."); } } } catch (Exception ex) { ErrorMessageDialog(ex.Message); } }