2 votes

Comment puis-je obtenir une ligne dans datagrid WPF ?

Je voudrais obtenir toutes les lignes afin de vérifier certaines lignes qui sont identiques dans la base de données, j'ai essayé plusieurs solutions sur StackOverflow mais aucune d'entre elles n'a fonctionné pour moi :

Ce code renvoie une exception value cannot be null.

J'ai également essayé cette ligne de code et j'ai reçu la même exception (l'objet currentitem était nul).

var currentItem = myDataGrid.SelectedItem as MyObject;

Code complet :

  private void UserControl_Loaded(object sender, RoutedEventArgs e)
     {

        grid.ItemsSource = null;
        grid.ItemsSource = work;
        grid.Items.Refresh();

        for (int i = 0; i < grid.Items.Count; i++) // Mon nombre d'éléments dans la grille est de 7
        {

            DataGridRow row = (DataGridRow)grid.ItemContainerGenerator.ContainerFromIndex(i); // cette valeur était null
            var currentItem = grid.SelectedItem as object; // cette valeur était null

        }

    }

0voto

Tomsen Points 157

Vous pourriez lier la source d'élément de votre DataGrid à une ObservableCollection et exécuter une boucle foreach dessus.

Je pense que cela rend les choses beaucoup plus faciles.

-1voto

abdou_dev Points 600

Enfin, j'ai réussi, j'ai corrigé l'erreur en utilisant ce code :

 for (int i = 0; i < grid.Items.Count; i++)
            {
                GridModel row = (GridModel)grid.Items[i];
            }
// Note : Le modèle de grille est une classe pour le Datagrid (les propriétés sont les mêmes que les noms des colonnes du datagrid)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X