C# WPF - DataGrid zeilenweise auslesen

SheldonCooper

Banned
Registriert
Mai 2011
Beiträge
938
Hallo,

ich hab in einem WPF-Projekt ein DataGrid mit 4 Spalten und n Zeilen. Die Daten kommen von MS SQL CE 3.5. Eine der Spalten ist eine CheckBox, die anderen sind Textboxen. Mit folgendem Code kann ich auf die gerade selektierte Zeile zugreifen:

Code:
private void DataGrid1_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
{
    FrameworkElement element_2 = DataGrid1.Columns[2].GetCellContent(e.Row);
    if (element_2.GetType() == typeof(CheckBox))
    {
        var _IsChecked = ((CheckBox)element_2).IsChecked;          
        //[..]
    }

    FrameworkElement element_3 = DataGrid1.Columns[3].GetCellContent(e.Row);
    if (element_3.GetType() == typeof(TextBlock))
    {
        var _Text = ((TextBlock)element_3).Text;
        //[..]
    } 
}

Kann ich auch irgendwie in einer Schleife ALLE Zeilen durchlaufen? Ich denke mir, dass ich im Beispiel oben doch nur das e.Row ersetzen müsste, aber ich weiß nicht wie. Ich hab schon einige Stunden mit Suchen verbracht, aber leider nichts passendes gefunden. Ist das vielleicht so einfach, dass es dafür keine gescheiten Tutorials gibt oder finde ich nichts weil das so kompliziert ist?

Besten Dank im Voraus!

Sheldon
 
Du brauchst nur die Items mit einer ForEach schleife durch laufen lassen.

Beispiel (ungetest):
Code:
            foreach (var item in DataGrid1.Items)
            {
                var element = DataGrid1.Columns[2].GetCellContent(item);
                if (element is CheckBox)
                {
                    var _IsChecked = (element as CheckBox).IsChecked;
                    //[..]
                }

                element = DataGrid1.Columns[3].GetCellContent(item);
                if (element is TextBlock)
                {
                    var _Text = (element as TextBox).Text;
                    //[..]
                } 
            }
 
@UnKnOwN_86: Vielen Dank, das ist genau das was ich mir vorgestellt habe.
 
Zurück
Oben