Moin,
Ich habe eine DataTable und habe diese für ein DataGrid gefiltert:
dt.DefaultView.RowFilter = string.Join(" AND ", fffilter.ToArray());
Nun möchte ich mit dieser View berechnungen durchführen, aber ich erlange (anscheinend) kein Zugriff auf die Rows, für so eine Sache z.B.:
DataRow dr;
offen = 0;
for (int i = 0; i < dt.Rows.Count; i++)
{
dr = dt.Rows[i];
if (dr[10].ToString() == "Offen")
{
_ = decimal.TryParse(dr[9].ToString(), out decimal off);
offen += off;
}
}
Status.Text += offen.ToString("C", CultureInfo.CurrentCulture) + "\n";
MVVM beherrsche ich nicht genügend um damit dasselbe und gewünschte zu erschreiben.
Wäre für Vorschläge weit offen... Danke
"Man muß die Dinge so einfach wie möglich machen. Aber nicht einfacher." Albert Einstein
Und was ist Deine Frage?
PS: Sei Dir bewusst, dass MVVM eben ein Grundbestandteil in WPF ist.
Bastelst Dir Workarounds, dann endet das meist im Chaos oder löst andere Probleme aus.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Siehe dazu auch Wie mit ComboBoxen DataGrid filtern?, da gibt es Code-Beispiele
Weeks of programming can save you hours of planning
Ich weiß nicht ob ich jetzt damit richtig liege. Kann es sein das du nicht auf die Row sondern auf die Column (Spalte) zugreifen möchtest?
Mit diesem Code
dr = dt.Rows[i];
hast du exakt eine Row.
Mit diesem Code
dr[10].ToString() == "Offen"
versuchst du auf das 10 Row Element deiner einen Row zuzugreifen.
Das wird nicht funktionieren 😉
Was funktioniert ist
dr[0].GibMirDenWertAusSpalte[10].ToString() == "Offen"
dr[10].ToString() == "Offen"
versuchst du auf das 10 Row Element deiner einen Row zuzugreifen.
mit
DataRow[10].ToString();
greife ich auf den 11. Wert des Array (Datarow) zu
"Man muß die Dinge so einfach wie möglich machen. Aber nicht einfacher." Albert Einstein
Ui da schäme ich mich ja 🙁
Hast recht war mein Fehler...