C# WPF | Loop für jede gewählte Zeile in einer Datagrid

Nick_SMI

Ensign
Registriert
Sep. 2015
Beiträge
153
Hallo zusammen!

Ich möchte in meinem Programm ein Loop einbauen, dass von einer Datagrid die gewählten Zeilen in eine andere Datagrid einfügt!

Momentan sieht mein Code so aus:

Code:
                foreach (var select in ZeitList.SelectedItems)
                {
                    var grid = (System.Windows.Controls.DataGrid)ZeitList;
                    Zeiten selectedItem = (Zeiten)grid.SelectedItem;
                    LinieZ = selectedItem.Linie;
                    AbfZ = selectedItem.Abf;
                    VonZ = selectedItem.Von;
                    NachZ = selectedItem.Nach;
                    AnkZ = selectedItem.Ank;
                    _items.Add(new Plan(LinieZ, Convert.ToString(Kurs.SelectedItem), AbfZ, VonZ, NachZ, AnkZ));
                }

Dies Funktioniert teilweise, momentan fügt er nur die Zeile mit dem kleinsten Index (erste gewählte Zeile) ein, sprich wenn ich drei gewählt habe, drei mal die erste Zeile!

Doch wie muss ich meinen Code umbauen, dass er den Inhalt auch umschreibt?

Grüße und danke im Voraus!
 
Ich würde als Schleifenvariable nicht "select" wählen, da dies ein reserviertes Keyword in Linq ist (siehe hier).

Code:
foreach (var item in ZeitList.SelectedItems)
{
    var grid = (System.Windows.Controls.DataGrid)ZeitList;
    Zeiten selectedItem = (Zeiten)grid.SelectedItem;
    LinieZ = item.Linie;
    AbfZ = item.Abf;
    VonZ = item.Von;
    NachZ = item.Nach;
    AnkZ = item.Ank;
    _items.Add(new Plan(LinieZ, Convert.ToString(Kurs.SelectedItem), AbfZ, VonZ, NachZ, AnkZ));
}
 
Wenn du (wie aus dem Titel ersichtlich) mit WPF arbeitest und es performances-technisch relevant ist, würde ich dir empfehlen, die SelectedItems an eine ObservableCollection zu binden und das ganze in einen asynchronen Thread auslagern. Klar, bei wenigen selektierten Items macht das kaum einen merkbaren Unterschied, aber wenn du zB 1000 markierte Items hast wäre das schon sinnvoll. Wobei ich mal nicht davon ausgehe, dass du 1000 Items selektierst - wollte es nur mal angemerkt haben ;)
 
Zurück
Oben